(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'PROGRAM='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'PROGRAM='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PROGRAM='> name:PROGRAM)
          op: assign_op.Equal
          rhs: {<libtool>}
        )
      ]
      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: {<libtool>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'VERSION='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'VERSION='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VERSION='> name:VERSION)
          op: assign_op.Equal
          rhs: {(DQ <'2.4.6 Debian-2.4.6-0.1'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'package_revision='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'package_revision='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'package_revision='> name:package_revision)
          op: assign_op.Equal
          rhs: {<2.4.6>}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <Id.Lit_Colon ':'>
      more_env: []
      words: [
        {<Id.Lit_Colon ':'>}
        {
          (BracedVarSub
            left: <Id.Left_DollarBrace '${'>
            token: <Id.VSub_Name AUTOCONF>
            var_name: AUTOCONF
            suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{(DQ <autoconf>)})
            right: <Id.Right_DollarBrace '}'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <Id.Lit_Colon ':'>
      more_env: []
      words: [
        {<Id.Lit_Colon ':'>}
        {
          (BracedVarSub
            left: <Id.Left_DollarBrace '${'>
            token: <Id.VSub_Name AUTOMAKE>
            var_name: AUTOMAKE
            suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{(DQ <automake>)})
            right: <Id.Right_DollarBrace '}'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Sentence
      child: 
        (command.ShAssignment
          left: <Id.Lit_VarLike 'scriptversion='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'scriptversion='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'scriptversion='> name:scriptversion)
              op: assign_op.Equal
              rhs: {<2015-01-20.17>}
            )
          ]
          redirects: []
        )
      terminator: <Id.Op_Semi _>
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.ShAssignment
              left: <Id.Lit_VarLike 'DUALCASE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'DUALCASE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DUALCASE='> name:DUALCASE)
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <export>
          more_env: []
          words: [{<export>} {<DUALCASE>}]
          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.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<-n>}
                            {
                              (DQ 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name ZSH_VERSION>
                                  var_name: ZSH_VERSION
                                  suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{<set>})
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Subshell
                          left: <Id.Op_LParen _>
                          child: 
                            (command.Simple
                              blame_tok: <emulate>
                              more_env: []
                              words: [{<emulate>} {<sh>}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Right_Subshell _>
                          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>}
                            )
                          ]
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [{<Id.Lit_Colon ':'>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <emulate>
              more_env: []
              words: [{<emulate>} {<sh>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'NULLCMD='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'NULLCMD='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NULLCMD='> name:NULLCMD)
                  op: assign_op.Equal
                  rhs: {<Id.Lit_Colon ':'>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <alias>
              more_env: []
              words: [{<alias>} {<-g>} {(SQ <'${1+"$@"}'>) <Id.Lit_Equals '='> (SQ <'"$@"'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <setopt>
              more_env: []
              words: [{<setopt>} {<NO_GLOB_SUBST>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [319 348]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.Case
          case_kw: <Id.KW_Case case>
          to_match: 
            (case_arg.Word
              w: 
                {
                  (CommandSub
                    left_token: <Id.Left_Backtick '`'>
                    child: 
                      (command.Subshell
                        left: <Id.Op_LParen _>
                        child: 
                          (command.Simple
                            blame_tok: <set>
                            more_env: []
                            words: [{<set>} {<-o>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Right_Subshell _>
                        redirects: [
                          (Redir
                            op: <Id.Redir_Great '2>'>
                            loc: (redir_loc.Fd fd:2)
                            arg: {<'/dev/null'>}
                          )
                        ]
                      )
                    right: <Id.Backtick_Right '`'>
                  )
                }
            )
          arms_start: <Id.KW_In in>
          arms: [
            (CaseArm
              left: <Id.Lit_Star '*'>
              pattern: (pat.Words words:[{<Id.Lit_Star '*'> <posix> <Id.Lit_Star '*'>}])
              middle: <Id.Right_CasePat _>
              action: [
                (command.Simple
                  blame_tok: <set>
                  more_env: []
                  words: [{<set>} {<-o>} {<posix>}]
                  redirects: []
                  do_fork: T
                )
              ]
              right: <Id.Op_DSemi _>
            )
          ]
          arms_end: <Id.KW_Esac esac>
          redirects: []
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike '_G_user_locale='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike '_G_user_locale='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_user_locale='> name:_G_user_locale)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike '_G_safe_locale='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike '_G_safe_locale='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_safe_locale='> name:_G_safe_locale)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ForEach
      keyword: <Id.KW_For for>
      iter_names: [_G_var]
      iterable: 
        (for_iter.Words
          words: [{<LANG>} {<LANGUAGE>} {<LC_ALL>} {<LC_CTYPE>} {<LC_COLLATE>} {<LC_MESSAGES>}]
        )
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {
                  (DQ <'if test set = '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'{'> ($ Id.VSub_DollarName _G_var) 
                    <'+set}'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'; then\n'> <'          save_'> 
                    ($ Id.VSub_DollarName _G_var) <'='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') ($ Id.VSub_DollarName _G_var) 
                    <'\n'> <'          '> ($ Id.VSub_DollarName _G_var) <'=C\n'> <'\t  export '> ($ Id.VSub_DollarName _G_var) <'\n'> 
                    <'\t  _G_user_locale='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ($ Id.VSub_DollarName _G_var) <'='> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\\\'>
                      ch: '\\'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <save_> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <'_G_var; '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <_G_user_locale> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <'\n'> <'\t  _G_safe_locale='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    ($ Id.VSub_DollarName _G_var) <'=C; '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <_G_safe_locale> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <'\n'> <'\tfi'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Subshell
          left: <Id.Op_LParen _>
          child: 
            (command.Simple
              blame_tok: <unset>
              more_env: []
              words: [{<unset>} {<CDPATH>}]
              redirects: []
              do_fork: T
            )
          right: <Id.Right_Subshell _>
          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>})
          ]
        )
        (command.Simple
          blame_tok: <unset>
          more_env: []
          words: [{<unset>} {<CDPATH>}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'sp='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'sp='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sp='> name:sp)
          op: assign_op.Equal
          rhs: {(SQ <' '>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'nl='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'nl='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nl='> name:nl)
          op: assign_op.Equal
          rhs: {(SQ <'\n'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'IFS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'IFS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName sp) <'\t'> ($ Id.VSub_DollarName nl))}
        )
      ]
      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: <test>
                      more_env: []
                      words: [
                        {<test>}
                        {
                          (DQ 
                            (BracedVarSub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Name PATH_SEPARATOR>
                              var_name: PATH_SEPARATOR
                              suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{<set>})
                              right: <Id.Right_DollarBrace '}'>
                            )
                          )
                        }
                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                        {<set>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'PATH_SEPARATOR='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'PATH_SEPARATOR='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH_SEPARATOR='> name:PATH_SEPARATOR)
                  op: assign_op.Equal
                  rhs: {<Id.Lit_Colon ':'>}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.CommandList
                      children: [
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'PATH='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'PATH='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'/bin;/bin'>)}
                                )
                              ]
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'FPATH='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'FPATH='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FPATH='> name:FPATH)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName PATH)}
                                )
                              ]
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.Simple
                          blame_tok: <sh>
                          more_env: []
                          words: [{<sh>} {<-c>} {<Id.Lit_Colon ':'>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  right: <Id.Right_Subshell _>
                  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>}
                    )
                  ]
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.AndOr
                      children: [
                        (command.Subshell
                          left: <Id.Op_LParen _>
                          child: 
                            (command.CommandList
                              children: [
                                (command.Sentence
                                  child: 
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'PATH='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'PATH='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'PATH='>
                                              name: PATH
                                            )
                                          op: assign_op.Equal
                                          rhs: {(SQ <'/bin:/bin'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                                (command.Sentence
                                  child: 
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'FPATH='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'FPATH='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'FPATH='>
                                              name: FPATH
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName PATH)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                                (command.Simple
                                  blame_tok: <sh>
                                  more_env: []
                                  words: [{<sh>} {<-c>} {<Id.Lit_Colon ':'>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          right: <Id.Right_Subshell _>
                          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>}
                            )
                          ]
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'PATH_SEPARATOR='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'PATH_SEPARATOR='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'PATH_SEPARATOR='>
                                  name: PATH_SEPARATOR
                                )
                              op: assign_op.Equal
                              rhs: {(SQ <';'>)}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          spids: [549 567]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShFunction
      name_tok: <func_executable_p>
      name: func_executable_p
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-f>} {(DQ ($ Id.VSub_Number 1))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-x>} {(DQ ($ Id.VSub_Number 1))}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_path_progs>
      name: func_path_progs
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_progs_list='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_progs_list='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_progs_list='> name:_G_progs_list)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_check_func='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_check_func='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_check_func='> name:_G_check_func)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_PATH='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_PATH='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_PATH='> name:_G_PATH)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Number 3>
                        var_name: 3
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VTest_Hyphen _>
                            arg_word: {(DQ ($ Id.VSub_DollarName PATH))}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_path_prog_max='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_path_prog_max='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike '_G_path_prog_max='>
                      name: _G_path_prog_max
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_path_prog_found='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_path_prog_found='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike '_G_path_prog_found='>
                      name: _G_path_prog_found
                    )
                  op: assign_op.Equal
                  rhs: {<false>}
                )
              ]
              redirects: []
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike '_G_save_IFS='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike '_G_save_IFS='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_save_IFS='> name:_G_save_IFS)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName IFS)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name PATH_SEPARATOR>
                        var_name: PATH_SEPARATOR
                        suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<':'>})
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [_G_dir]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName _G_PATH)}])
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'IFS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'IFS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName _G_save_IFS)}
                        )
                      ]
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName _G_dir))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike '_G_dir='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike '_G_dir='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_dir='> name:_G_dir)
                              op: assign_op.Equal
                              rhs: {<.>}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [_G_prog_name]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName _G_progs_list)}])
                      semi_tok: <Id.Op_Semi _>
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [_exeext]
                              iterable: (for_iter.Words words:[{(SQ )} {<.EXE>}])
                              semi_tok: <Id.Op_Semi _>
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike '_G_path_prog='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike '_G_path_prog='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike '_G_path_prog='>
                                              name: _G_path_prog
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName _G_dir) <'/'> 
                                              ($ Id.VSub_DollarName _G_prog_name) ($ Id.VSub_DollarName _exeext)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <func_executable_p>
                                          more_env: []
                                          words: [
                                            {<func_executable_p>}
                                            {(DQ ($ Id.VSub_DollarName _G_path_prog))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Continue continue>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <Id.Left_DoubleQuote '"'>
                                                    more_env: []
                                                    words: [
                                                      {(DQ ($ Id.VSub_DollarName _G_path_prog))}
                                                      {<--version>}
                                                    ]
                                                    redirects: [
                                                      (Redir
                                                        op: <Id.Redir_GreatAnd '2>&'>
                                                        loc: (redir_loc.Fd fd:2)
                                                        arg: {<1>}
                                                      )
                                                    ]
                                                    do_fork: T
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_Star '*'> <GNU> <Id.Lit_Star '*'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'func_path_progs_result='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'func_path_progs_result='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: 
                                                        <Id.Lit_VarLike 'func_path_progs_result='>
                                                      name: func_path_progs_result
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName _G_path_prog)}
                                                )
                                                (AssignPair
                                                  left: <Id.Lit_VarLike '_G_path_prog_found='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike '_G_path_prog_found='>
                                                      name: _G_path_prog_found
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<Id.Lit_Colon ':'>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$_G_check_func'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName _G_check_func)}
                                                {($ Id.VSub_DollarName _G_path_prog)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'func_path_progs_result='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'func_path_progs_result='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: 
                                                        <Id.Lit_VarLike 'func_path_progs_result='>
                                                      name: func_path_progs_result
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName func_check_prog_result)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$_G_path_prog_found'>
                                          more_env: []
                                          words: [{($ Id.VSub_DollarName _G_path_prog_found)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Break break>
                                          arg_word: {<3>}
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName _G_save_IFS)}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName func_path_progs_result))}]
                  redirects: []
                  do_fork: T
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ <'no acceptable sed could be found in '> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <PATH>
                          )
                        }
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName SED))}]
          redirects: []
          do_fork: T
        )
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_sed_script='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_sed_script='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_sed_script='> name:_G_sed_script)
                  op: assign_op.Equal
                  rhs: {<'s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/'>}
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [_G_i]
              iterable: (for_iter.Words words:[{<1>} {<2>} {<3>} {<4>} {<5>} {<6>} {<7>}])
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_G_sed_script='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_G_sed_script='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike '_G_sed_script='>
                              name: _G_sed_script
                            )
                          op: assign_op.Equal
                          rhs: 
                            {($ Id.VSub_DollarName _G_sed_script) ($ Id.VSub_DollarName nl) 
                              ($ Id.VSub_DollarName _G_sed_script)
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(DQ ($ Id.VSub_DollarName _G_sed_script))}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <sed>
                  more_env: []
                  words: [{<sed>} {<99q>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<conftest.sed>}
                    )
                  ]
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_sed_script='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_sed_script='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_sed_script='> name:_G_sed_script)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShFunction
              name_tok: <func_check_prog_sed>
              name: func_check_prog_sed
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_G_path_prog='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_G_path_prog='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike '_G_path_prog='>
                              name: _G_path_prog
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_G_count='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_G_count='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_count='> name:_G_count)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <printf>
                      more_env: []
                      words: [{<printf>} {<0123456789>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<conftest.in>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Simple
                              blame_tok: <Id.Lit_Colon ':'>
                              more_env: []
                              words: [{<Id.Lit_Colon ':'>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Simple
                              blame_tok: <cat>
                              more_env: []
                              words: [{<cat>} {<conftest.in>} {<conftest.in>}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_Great '>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<conftest.tmp>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <mv>
                              more_env: []
                              words: [{<mv>} {<conftest.tmp>} {<conftest.in>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <cp>
                              more_env: []
                              words: [{<cp>} {<conftest.in>} {<conftest.nl>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(SQ )}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<conftest.nl>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.Left_DoubleQuote '"'>
                                  more_env: []
                                  words: [
                                    {(DQ ($ Id.VSub_DollarName _G_path_prog))}
                                    {<-f>}
                                    {<conftest.sed>}
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_Less '<'>
                                      loc: (redir_loc.Fd fd:0)
                                      arg: {<conftest.nl>}
                                    )
                                    (Redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<conftest.out>}
                                    )
                                    (Redir
                                      op: <Id.Redir_Great '2>'>
                                      loc: (redir_loc.Fd fd:2)
                                      arg: {<'/dev/null'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Break break>
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <diff>
                                  more_env: []
                                  words: [{<diff>} {<conftest.out>} {<conftest.nl>}]
                                  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
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Break break>
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_G_count='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_G_count='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_G_count='>
                                      name: _G_count
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <expr>
                                            more_env: []
                                            words: [
                                              {<expr>}
                                              {($ Id.VSub_DollarName _G_count)}
                                              {<Id.Lit_Other '+'>}
                                              {<1>}
                                            ]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {(DQ ($ Id.VSub_DollarName _G_count))}
                                                {<-gt>}
                                                {(DQ ($ Id.VSub_DollarName _G_path_prog_max))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'func_check_prog_result='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'func_check_prog_result='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'func_check_prog_result='>
                                              name: func_check_prog_result
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName _G_path_prog)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike '_G_path_prog_max='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike '_G_path_prog_max='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike '_G_path_prog_max='>
                                              name: _G_path_prog_max
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName _G_count)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [1166 1181]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<10>} {<-lt>} {(DQ ($ Id.VSub_DollarName _G_count))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Break break>
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <rm>
                      more_env: []
                      words: [
                        {<rm>}
                        {<-f>}
                        {<conftest.in>}
                        {<conftest.tmp>}
                        {<conftest.nl>}
                        {<conftest.out>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.Simple
              blame_tok: <func_path_progs>
              more_env: []
              words: [
                {<func_path_progs>}
                {(DQ <'sed gsed'>)}
                {<func_check_prog_sed>}
                {($ Id.VSub_DollarName PATH) <Id.Lit_Colon ':'> <'/usr/xpg4/bin'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [{<rm>} {<-f>} {<conftest.sed>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'SED='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'SED='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SED='> name:SED)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_path_progs_result)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName GREP))}]
          redirects: []
          do_fork: T
        )
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShFunction
              name_tok: <func_check_prog_grep>
              name: func_check_prog_grep
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_G_path_prog='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_G_path_prog='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike '_G_path_prog='>
                              name: _G_path_prog
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_G_count='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_G_count='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_count='> name:_G_count)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_G_path_prog_max='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_G_path_prog_max='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike '_G_path_prog_max='>
                              name: _G_path_prog_max
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <printf>
                      more_env: []
                      words: [{<printf>} {<0123456789>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<conftest.in>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Simple
                              blame_tok: <Id.Lit_Colon ':'>
                              more_env: []
                              words: [{<Id.Lit_Colon ':'>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Simple
                              blame_tok: <cat>
                              more_env: []
                              words: [{<cat>} {<conftest.in>} {<conftest.in>}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_Great '>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<conftest.tmp>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <mv>
                              more_env: []
                              words: [{<mv>} {<conftest.tmp>} {<conftest.in>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <cp>
                              more_env: []
                              words: [{<cp>} {<conftest.in>} {<conftest.nl>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(SQ <GREP>)}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<conftest.nl>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.Left_DoubleQuote '"'>
                                  more_env: []
                                  words: [
                                    {(DQ ($ Id.VSub_DollarName _G_path_prog))}
                                    {<-e>}
                                    {(SQ <'GREP$'>)}
                                    {<-e>}
                                    {(SQ <'-(cannot match)-'>)}
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_Less '<'>
                                      loc: (redir_loc.Fd fd:0)
                                      arg: {<conftest.nl>}
                                    )
                                    (Redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<conftest.out>}
                                    )
                                    (Redir
                                      op: <Id.Redir_Great '2>'>
                                      loc: (redir_loc.Fd fd:2)
                                      arg: {<'/dev/null'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Break break>
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <diff>
                                  more_env: []
                                  words: [{<diff>} {<conftest.out>} {<conftest.nl>}]
                                  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
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Break break>
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_G_count='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_G_count='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_G_count='>
                                      name: _G_count
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <expr>
                                            more_env: []
                                            words: [
                                              {<expr>}
                                              {($ Id.VSub_DollarName _G_count)}
                                              {<Id.Lit_Other '+'>}
                                              {<1>}
                                            ]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {(DQ ($ Id.VSub_DollarName _G_count))}
                                                {<-gt>}
                                                {(DQ ($ Id.VSub_DollarName _G_path_prog_max))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'func_check_prog_result='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'func_check_prog_result='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'func_check_prog_result='>
                                              name: func_check_prog_result
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName _G_path_prog)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike '_G_path_prog_max='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike '_G_path_prog_max='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike '_G_path_prog_max='>
                                              name: _G_path_prog_max
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName _G_count)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [1418 1433]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<10>} {<-lt>} {(DQ ($ Id.VSub_DollarName _G_count))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Break break>
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <rm>
                      more_env: []
                      words: [
                        {<rm>}
                        {<-f>}
                        {<conftest.in>}
                        {<conftest.tmp>}
                        {<conftest.nl>}
                        {<conftest.out>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.Simple
              blame_tok: <func_path_progs>
              more_env: []
              words: [
                {<func_path_progs>}
                {(DQ <'grep ggrep'>)}
                {<func_check_prog_grep>}
                {($ Id.VSub_DollarName PATH) <Id.Lit_Colon ':'> <'/usr/xpg4/bin'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GREP='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GREP='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GREP='> name:GREP)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_path_progs_result)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.Simple
      blame_tok: <Id.Lit_Colon ':'>
      more_env: []
      words: [
        {<Id.Lit_Colon ':'>}
        {
          (BracedVarSub
            left: <Id.Left_DollarBrace '${'>
            token: <Id.VSub_Name CP>
            var_name: CP
            suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{(DQ <'cp -f'>)})
            right: <Id.Right_DollarBrace '}'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <Id.Lit_Colon ':'>
      more_env: []
      words: [
        {<Id.Lit_Colon ':'>}
        {
          (BracedVarSub
            left: <Id.Left_DollarBrace '${'>
            token: <Id.VSub_Name ECHO>
            var_name: ECHO
            suffix_op: 
              (suffix_op.Unary
                op: <Id.VTest_Equals _>
                arg_word: {(DQ <'printf %s'> <Id.Lit_BadBackslash '\\'> <n>)}
              )
            right: <Id.Right_DollarBrace '}'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <Id.Lit_Colon ':'>
      more_env: []
      words: [
        {<Id.Lit_Colon ':'>}
        {
          (BracedVarSub
            left: <Id.Left_DollarBrace '${'>
            token: <Id.VSub_Name EGREP>
            var_name: EGREP
            suffix_op: 
              (suffix_op.Unary
                op: <Id.VTest_Equals _>
                arg_word: {(DQ ($ Id.VSub_DollarName GREP) <' -E'>)}
              )
            right: <Id.Right_DollarBrace '}'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <Id.Lit_Colon ':'>
      more_env: []
      words: [
        {<Id.Lit_Colon ':'>}
        {
          (BracedVarSub
            left: <Id.Left_DollarBrace '${'>
            token: <Id.VSub_Name FGREP>
            var_name: FGREP
            suffix_op: 
              (suffix_op.Unary
                op: <Id.VTest_Equals _>
                arg_word: {(DQ ($ Id.VSub_DollarName GREP) <' -F'>)}
              )
            right: <Id.Right_DollarBrace '}'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <Id.Lit_Colon ':'>
      more_env: []
      words: [
        {<Id.Lit_Colon ':'>}
        {
          (BracedVarSub
            left: <Id.Left_DollarBrace '${'>
            token: <Id.VSub_Name LN_S>
            var_name: LN_S
            suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{(DQ <'ln -s'>)})
            right: <Id.Right_DollarBrace '}'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <Id.Lit_Colon ':'>
      more_env: []
      words: [
        {<Id.Lit_Colon ':'>}
        {
          (BracedVarSub
            left: <Id.Left_DollarBrace '${'>
            token: <Id.VSub_Name MAKE>
            var_name: MAKE
            suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{(DQ <make>)})
            right: <Id.Right_DollarBrace '}'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <Id.Lit_Colon ':'>
      more_env: []
      words: [
        {<Id.Lit_Colon ':'>}
        {
          (BracedVarSub
            left: <Id.Left_DollarBrace '${'>
            token: <Id.VSub_Name MKDIR>
            var_name: MKDIR
            suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{(DQ <mkdir>)})
            right: <Id.Right_DollarBrace '}'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <Id.Lit_Colon ':'>
      more_env: []
      words: [
        {<Id.Lit_Colon ':'>}
        {
          (BracedVarSub
            left: <Id.Left_DollarBrace '${'>
            token: <Id.VSub_Name MV>
            var_name: MV
            suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{(DQ <'mv -f'>)})
            right: <Id.Right_DollarBrace '}'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <Id.Lit_Colon ':'>
      more_env: []
      words: [
        {<Id.Lit_Colon ':'>}
        {
          (BracedVarSub
            left: <Id.Left_DollarBrace '${'>
            token: <Id.VSub_Name RM>
            var_name: RM
            suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{(DQ <'rm -f'>)})
            right: <Id.Right_DollarBrace '}'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <Id.Lit_Colon ':'>
      more_env: []
      words: [
        {<Id.Lit_Colon ':'>}
        {
          (BracedVarSub
            left: <Id.Left_DollarBrace '${'>
            token: <Id.VSub_Name SHELL>
            var_name: SHELL
            suffix_op: 
              (suffix_op.Unary
                op: <Id.VTest_Equals _>
                arg_word: 
                  {
                    (DQ 
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name CONFIG_SHELL>
                        var_name: CONFIG_SHELL
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VTest_Hyphen _>
                            arg_word: {<Id.Lit_Slash '/'> <bin> <Id.Lit_Slash '/'> <sh>}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    )
                  }
              )
            right: <Id.Right_DollarBrace '}'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'sed_dirname='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'sed_dirname='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sed_dirname='> name:sed_dirname)
          op: assign_op.Equal
          rhs: {(SQ <'s|/[^/]*$||'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'sed_basename='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'sed_basename='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sed_basename='> name:sed_basename)
          op: assign_op.Equal
          rhs: {(SQ <'s|^.*/||'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'sed_quote_subst='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'sed_quote_subst='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sed_quote_subst='> name:sed_quote_subst)
          op: assign_op.Equal
          rhs: {(SQ <'s|\\([`"$\\\\]\\)|\\\\\\1|g'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'sed_double_quote_subst='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'sed_double_quote_subst='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'sed_double_quote_subst='>
              name: sed_double_quote_subst
            )
          op: assign_op.Equal
          rhs: {(SQ <'s/\\(["`\\\\]\\)/\\\\\\1/g'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'sed_make_literal_regex='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'sed_make_literal_regex='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'sed_make_literal_regex='>
              name: sed_make_literal_regex
            )
          op: assign_op.Equal
          rhs: {(SQ <'s|[].[^$\\\\*\\/]|\\\\&|g'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'sed_naive_backslashify='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'sed_naive_backslashify='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'sed_naive_backslashify='>
              name: sed_naive_backslashify
            )
          op: assign_op.Equal
          rhs: {(SQ <'s|\\\\\\\\*|\\\\|g;s|/|\\\\|g;s|\\\\|\\\\\\\\|g'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike '_G_bs='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike '_G_bs='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_bs='> name:_G_bs)
          op: assign_op.Equal
          rhs: {(SQ <'\\\\'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike '_G_bs2='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike '_G_bs2='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_bs2='> name:_G_bs2)
          op: assign_op.Equal
          rhs: {(SQ <'\\\\\\\\'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike '_G_bs4='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike '_G_bs4='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_bs4='> name:_G_bs4)
          op: assign_op.Equal
          rhs: {(SQ <'\\\\\\\\\\\\\\\\'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike '_G_dollar='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike '_G_dollar='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_dollar='> name:_G_dollar)
          op: assign_op.Equal
          rhs: {(SQ <'\\$'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'sed_double_backslash='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'sed_double_backslash='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'sed_double_backslash='>
              name: sed_double_backslash
            )
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'  s/'> ($ Id.VSub_DollarName _G_bs4) <'/&'> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'/g\n'> <'  s/^'> ($ Id.VSub_DollarName _G_bs2) ($ Id.VSub_DollarName _G_dollar) <'/'> 
                ($ Id.VSub_DollarName _G_bs) <'&/\n'> <'  s/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'([^'> 
                ($ Id.VSub_DollarName _G_bs) <']'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <')'> 
                ($ Id.VSub_DollarName _G_bs2) ($ Id.VSub_DollarName _G_dollar) <'/'> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <1> ($ Id.VSub_DollarName _G_bs2) ($ Id.VSub_DollarName _G_bs) ($ Id.VSub_DollarName _G_dollar) <'/g\n'> 
                <'  s/'> <Id.Lit_BadBackslash '\\'> <'n//g'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'EXIT_SUCCESS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'EXIT_SUCCESS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXIT_SUCCESS='> name:EXIT_SUCCESS)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'EXIT_FAILURE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'EXIT_FAILURE='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXIT_FAILURE='> name:EXIT_FAILURE)
          op: assign_op.Equal
          rhs: {<1>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'EXIT_MISMATCH='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'EXIT_MISMATCH='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXIT_MISMATCH='> name:EXIT_MISMATCH)
          op: assign_op.Equal
          rhs: {<63>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'EXIT_SKIP='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'EXIT_SKIP='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXIT_SKIP='> name:EXIT_SKIP)
          op: assign_op.Equal
          rhs: {<77>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'debug_cmd='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'debug_cmd='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'debug_cmd='> name:debug_cmd)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name debug_cmd>
                var_name: debug_cmd
                suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{(DQ <':'>)})
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'exit_cmd='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'exit_cmd='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exit_cmd='> name:exit_cmd)
          op: assign_op.Equal
          rhs: {<Id.Lit_Colon ':'>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'exit_status='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'exit_status='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exit_status='> name:exit_status)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName EXIT_SUCCESS)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'progpath='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'progpath='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'progpath='> name:progpath)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number 0)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'progname='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'progname='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'progname='> name:progname)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Pipeline
                    children: [
                      (command.Simple
                        blame_tok: <Id.VSub_DollarName '$ECHO'>
                        more_env: []
                        words: [{($ Id.VSub_DollarName ECHO)} {(DQ ($ Id.VSub_DollarName progpath))}]
                        redirects: []
                        do_fork: T
                      )
                      (command.Simple
                        blame_tok: <Id.VSub_DollarName '$SED'>
                        more_env: []
                        words: [{($ Id.VSub_DollarName SED)} {(DQ ($ Id.VSub_DollarName sed_basename))}]
                        redirects: []
                        do_fork: T
                      )
                    ]
                    ops: [<Id.Op_Pipe _>]
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName progpath)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.Lit_LBracket '['>
          pattern: 
            (pat.Words
              words: [
                {<Id.Lit_LBracket '['> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\\\'>
                    ch: '\\'
                  ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                }
                {<Id.Lit_LBracket '['> <A-Za-z> <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\\\'>
                    ch: '\\'
                  ) <Id.Lit_Star '*'>
                }
              ]
            )
          middle: <Id.Right_CasePat _>
          action: []
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: 
            (pat.Words
              words: [
                {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\\\'>
                    ch: '\\'
                  ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                }
              ]
            )
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'progdir='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'progdir='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'progdir='> name:progdir)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                more_env: []
                                words: [
                                  {($ Id.VSub_DollarName ECHO)}
                                  {(DQ ($ Id.VSub_DollarName progpath))}
                                ]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <Id.VSub_DollarName '$SED'>
                                more_env: []
                                words: [
                                  {($ Id.VSub_DollarName SED)}
                                  {(DQ ($ Id.VSub_DollarName sed_dirname))}
                                ]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'progdir='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'progdir='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'progdir='> name:progdir)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.AndOr
                            children: [
                              (command.Simple
                                blame_tok: <cd>
                                more_env: []
                                words: [{<cd>} {(DQ ($ Id.VSub_DollarName progdir))}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <pwd>
                                more_env: []
                                words: [{<pwd>}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_DAmp _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'progpath='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'progpath='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'progpath='> name:progpath)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName progdir) <'/'> ($ Id.VSub_DollarName progname)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_IFS='> name:_G_IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName IFS)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name PATH_SEPARATOR>
                        var_name: PATH_SEPARATOR
                        suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<':'>})
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [progdir]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName PATH)}])
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'IFS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'IFS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName _G_IFS)}
                        )
                      ]
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<-x>}
                            {
                              (DQ ($ Id.VSub_DollarName progdir) <'/'> ($ Id.VSub_DollarName progname))
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Break break>
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName _G_IFS)}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName progdir))}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'progdir='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'progdir='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'progdir='> name:progdir)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Simple
                                blame_tok: <pwd>
                                more_env: []
                                words: [{<pwd>}]
                                redirects: []
                                do_fork: T
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'progpath='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'progpath='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'progpath='> name:progpath)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName progdir) <'/'> ($ Id.VSub_DollarName progname)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'opt_dry_run='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'opt_dry_run='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opt_dry_run='> name:opt_dry_run)
          op: assign_op.Equal
          rhs: {<false>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'opt_quiet='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'opt_quiet='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opt_quiet='> name:opt_quiet)
          op: assign_op.Equal
          rhs: {<false>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'opt_verbose='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'opt_verbose='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opt_verbose='> name:opt_verbose)
          op: assign_op.Equal
          rhs: {<false>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'warning_categories='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'warning_categories='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'warning_categories='> name:warning_categories)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'warning_func='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'warning_func='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'warning_func='> name:warning_func)
          op: assign_op.Equal
          rhs: {<func_warn_and_continue>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'opt_warning_types='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'opt_warning_types='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opt_warning_types='> name:opt_warning_types)
          op: assign_op.Equal
          rhs: {<all>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'require_term_colors='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'require_term_colors='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'require_term_colors='>
              name: require_term_colors
            )
          op: assign_op.Equal
          rhs: {<func_require_term_colors>}
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <func_require_term_colors>
      name: func_require_term_colors
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-t>} {<1>}]
                  redirects: []
                  do_fork: T
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<-n>}
                            {
                              (DQ 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name COLORTERM>
                                  var_name: COLORTERM
                                  suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{<set>})
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <Id.Lit_Colon ':'>
                          more_env: []
                          words: [
                            {<Id.Lit_Colon ':'>}
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name USE_ANSI_COLORS>
                                var_name: USE_ANSI_COLORS
                                suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{(DQ <1>)})
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (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>}
                                        {<1>}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName USE_ANSI_COLORS))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'tc_reset='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'tc_reset='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'tc_reset='>
                                      name: tc_reset
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <'\x1b[0m'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'tc_bold='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'tc_bold='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'tc_bold='>
                                          name: tc_bold
                                        )
                                      op: assign_op.Equal
                                      rhs: {(SQ <'\x1b[1m'>)}
                                    )
                                  ]
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'tc_standout='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'tc_standout='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'tc_standout='>
                                      name: tc_standout
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <'\x1b[7m'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'tc_red='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'tc_red='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'tc_red='>
                                          name: tc_red
                                        )
                                      op: assign_op.Equal
                                      rhs: {(SQ <'\x1b[31m'>)}
                                    )
                                  ]
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'tc_green='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'tc_green='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'tc_green='>
                                      name: tc_green
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <'\x1b[32m'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'tc_blue='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'tc_blue='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'tc_blue='>
                                          name: tc_blue
                                        )
                                      op: assign_op.Equal
                                      rhs: {(SQ <'\x1b[34m'>)}
                                    )
                                  ]
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'tc_cyan='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'tc_cyan='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'tc_cyan='>
                                      name: tc_cyan
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <'\x1b[36m'>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [2296 2309]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<-n>}
                                {
                                  (DQ 
                                    (CommandSub
                                      left_token: <Id.Left_Backtick '`'>
                                      child: 
                                        (command.Simple
                                          blame_tok: <tput>
                                          more_env: []
                                          words: [{<tput>} {<sgr0>}]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '2>'>
                                              loc: (redir_loc.Fd fd:2)
                                              arg: {<'/dev/null'>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      right: <Id.Backtick_Right '`'>
                                    )
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (BraceGroup
                              left: <Id.Lit_LBrace '{'>
                              children: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'tc_reset='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'tc_reset='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'tc_reset='>
                                          name: tc_reset
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (CommandSub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Simple
                                                blame_tok: <tput>
                                                more_env: []
                                                words: [{<tput>} {<sgr0>}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            right: <Id.Backtick_Right '`'>
                                          )
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.AndOr
                                  children: [
                                    (command.Simple
                                      blame_tok: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<-n>}
                                        {
                                          (DQ 
                                            (CommandSub
                                              left_token: <Id.Left_Backtick '`'>
                                              child: 
                                                (command.Simple
                                                  blame_tok: <tput>
                                                  more_env: []
                                                  words: [{<tput>} {<bold>}]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_Great '2>'>
                                                      loc: (redir_loc.Fd fd:2)
                                                      arg: {<'/dev/null'>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              right: <Id.Backtick_Right '`'>
                                            )
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'tc_bold='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'tc_bold='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'tc_bold='>
                                              name: tc_bold
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <tput>
                                                    more_env: []
                                                    words: [{<tput>} {<bold>}]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  ops: [<Id.Op_DAmp _>]
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'tc_standout='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'tc_standout='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'tc_standout='>
                                          name: tc_standout
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName tc_bold)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.AndOr
                                  children: [
                                    (command.Simple
                                      blame_tok: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<-n>}
                                        {
                                          (DQ 
                                            (CommandSub
                                              left_token: <Id.Left_Backtick '`'>
                                              child: 
                                                (command.Simple
                                                  blame_tok: <tput>
                                                  more_env: []
                                                  words: [{<tput>} {<smso>}]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_Great '2>'>
                                                      loc: (redir_loc.Fd fd:2)
                                                      arg: {<'/dev/null'>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              right: <Id.Backtick_Right '`'>
                                            )
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'tc_standout='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'tc_standout='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'tc_standout='>
                                              name: tc_standout
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <tput>
                                                    more_env: []
                                                    words: [{<tput>} {<smso>}]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  ops: [<Id.Op_DAmp _>]
                                )
                                (command.AndOr
                                  children: [
                                    (command.Simple
                                      blame_tok: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<-n>}
                                        {
                                          (DQ 
                                            (CommandSub
                                              left_token: <Id.Left_Backtick '`'>
                                              child: 
                                                (command.Simple
                                                  blame_tok: <tput>
                                                  more_env: []
                                                  words: [{<tput>} {<setaf>} {<1>}]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_Great '2>'>
                                                      loc: (redir_loc.Fd fd:2)
                                                      arg: {<'/dev/null'>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              right: <Id.Backtick_Right '`'>
                                            )
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'tc_red='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'tc_red='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'tc_red='>
                                              name: tc_red
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <tput>
                                                    more_env: []
                                                    words: [{<tput>} {<setaf>} {<1>}]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  ops: [<Id.Op_DAmp _>]
                                )
                                (command.AndOr
                                  children: [
                                    (command.Simple
                                      blame_tok: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<-n>}
                                        {
                                          (DQ 
                                            (CommandSub
                                              left_token: <Id.Left_Backtick '`'>
                                              child: 
                                                (command.Simple
                                                  blame_tok: <tput>
                                                  more_env: []
                                                  words: [{<tput>} {<setaf>} {<2>}]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_Great '2>'>
                                                      loc: (redir_loc.Fd fd:2)
                                                      arg: {<'/dev/null'>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              right: <Id.Backtick_Right '`'>
                                            )
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'tc_green='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'tc_green='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'tc_green='>
                                              name: tc_green
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <tput>
                                                    more_env: []
                                                    words: [{<tput>} {<setaf>} {<2>}]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  ops: [<Id.Op_DAmp _>]
                                )
                                (command.AndOr
                                  children: [
                                    (command.Simple
                                      blame_tok: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<-n>}
                                        {
                                          (DQ 
                                            (CommandSub
                                              left_token: <Id.Left_Backtick '`'>
                                              child: 
                                                (command.Simple
                                                  blame_tok: <tput>
                                                  more_env: []
                                                  words: [{<tput>} {<setaf>} {<4>}]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_Great '2>'>
                                                      loc: (redir_loc.Fd fd:2)
                                                      arg: {<'/dev/null'>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              right: <Id.Backtick_Right '`'>
                                            )
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'tc_blue='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'tc_blue='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'tc_blue='>
                                              name: tc_blue
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <tput>
                                                    more_env: []
                                                    words: [{<tput>} {<setaf>} {<4>}]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  ops: [<Id.Op_DAmp _>]
                                )
                                (command.AndOr
                                  children: [
                                    (command.Simple
                                      blame_tok: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<-n>}
                                        {
                                          (DQ 
                                            (CommandSub
                                              left_token: <Id.Left_Backtick '`'>
                                              child: 
                                                (command.Simple
                                                  blame_tok: <tput>
                                                  more_env: []
                                                  words: [{<tput>} {<setaf>} {<5>}]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_Great '2>'>
                                                      loc: (redir_loc.Fd fd:2)
                                                      arg: {<'/dev/null'>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              right: <Id.Backtick_Right '`'>
                                            )
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'tc_cyan='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'tc_cyan='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'tc_cyan='>
                                              name: tc_cyan
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <tput>
                                                    more_env: []
                                                    words: [{<tput>} {<setaf>} {<5>}]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  ops: [<Id.Op_DAmp _>]
                                )
                              ]
                              redirects: []
                              right: <Id.Lit_RBrace '}'>
                            )
                          ]
                          ops: [<Id.Op_DAmp _>]
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'require_term_colors='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'require_term_colors='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'require_term_colors='>
                      name: require_term_colors
                    )
                  op: assign_op.Equal
                  rhs: {<Id.Lit_Colon ':'>}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (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>}
                        {<set>}
                        {<Id.Lit_Equals '='>}
                        {
                          (DQ 
                            (BracedVarSub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Name BASH_VERSION>
                              var_name: BASH_VERSION
                              suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{<set>})
                              right: <Id.Right_DollarBrace '}'>
                            ) 
                            (BracedVarSub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Name ZSH_VERSION>
                              var_name: ZSH_VERSION
                              suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{<set>})
                              right: <Id.Right_DollarBrace '}'>
                            )
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name _G_HAVE_ARITH_OP>
                    var_name: _G_HAVE_ARITH_OP
                    suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{(DQ <yes>)})
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name _G_HAVE_XSI_OPS>
                    var_name: _G_HAVE_XSI_OPS
                    suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{(DQ <yes>)})
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName BASH_VERSION)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_LBracket '['>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_LBracket '['> <12> <Id.Lit_RBracket ']'> <.> <Id.Lit_Star '*'>}
                        {<3.0>}
                        {<3.0> <Id.Lit_Star '*'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <Id.Lit_Colon ':'>
                      more_env: []
                      words: [
                        {<Id.Lit_Colon ':'>}
                        {
                          (BracedVarSub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Name _G_HAVE_PLUSEQ_OP>
                            var_name: _G_HAVE_PLUSEQ_OP
                            suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{(DQ <yes>)})
                            right: <Id.Right_DollarBrace '}'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          spids: [2655 2677]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName _G_HAVE_PLUSEQ_OP))}]
          redirects: []
          do_fork: T
        )
        (command.Subshell
          left: <Id.Op_LParen _>
          child: 
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [{<eval>} {(SQ <'x=a; x+=" b"; test "a b" = "$x"'>)}]
              redirects: []
              do_fork: T
            )
          right: <Id.Right_Subshell _>
          redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike '_G_HAVE_PLUSEQ_OP='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike '_G_HAVE_PLUSEQ_OP='>
              lhs: 
                (sh_lhs_expr.Name
                  left: <Id.Lit_VarLike '_G_HAVE_PLUSEQ_OP='>
                  name: _G_HAVE_PLUSEQ_OP
                )
              op: assign_op.Equal
              rhs: {<yes>}
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {<yes>}
                    {<Id.Lit_Equals '='>}
                    {(DQ ($ Id.VSub_DollarName _G_HAVE_PLUSEQ_OP))}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {
                  (SQ <'func_append ()\n'> <'  {\n'> <'    $debug_cmd\n'> <'\n'> 
                    <'    eval "$1+=\\$2"\n'> <'  }'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          spids: [2800 2812]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.ShFunction
          name_tok: <func_append>
          name: func_append
          body: 
            (BraceGroup
              left: <Id.Lit_LBrace '{'>
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$debug_cmd'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName debug_cmd)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <eval>
                  more_env: []
                  words: [
                    {<eval>}
                    {
                      (DQ ($ Id.VSub_Number 1) <'='> 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        ) ($ Id.VSub_Number 1) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <2>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              redirects: []
              right: <Id.Lit_RBrace '}'>
            )
        )
      ]
      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: <test>
                      more_env: []
                      words: [
                        {<test>}
                        {<yes>}
                        {<Id.Lit_Equals '='>}
                        {(DQ ($ Id.VSub_DollarName _G_HAVE_PLUSEQ_OP))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {
                  (SQ <'func_append_quoted ()\n'> <'  {\n'> <'    $debug_cmd\n'> <'\n'> 
                    <'    func_quote_for_eval "$2"\n'> <'    eval "$1+=\\\\ \\$func_quote_for_eval_result"\n'> <'  }'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          spids: [2880 2893]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.ShFunction
          name_tok: <func_append_quoted>
          name: func_append_quoted
          body: 
            (BraceGroup
              left: <Id.Lit_LBrace '{'>
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$debug_cmd'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName debug_cmd)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <func_quote_for_eval>
                  more_env: []
                  words: [{<func_quote_for_eval>} {(DQ ($ Id.VSub_Number 2))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <eval>
                  more_env: []
                  words: [
                    {<eval>}
                    {
                      (DQ ($ Id.VSub_Number 1) <'='> 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        ) ($ Id.VSub_Number 1) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <' '> 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        ) <func_quote_for_eval_result>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              redirects: []
              right: <Id.Lit_RBrace '}'>
            )
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShFunction
      name_tok: <func_append_uniq>
      name: func_append_uniq
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {<Id.Lit_VarLike '_G_current_value='> (SQ <'`$ECHO $'>) ($ Id.VSub_Number 1) (SQ <'`'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_delim='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_delim='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_delim='> name:_G_delim)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <expr>
                            more_env: []
                            words: [
                              {<expr>}
                              {(DQ ($ Id.VSub_Number 2))}
                              {<Id.Lit_Colon ':'>}
                              {(SQ <'\\(.\\)'>)}
                            ]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: 
                (case_arg.Word
                  w: 
                    {($ Id.VSub_DollarName _G_delim) ($ Id.VSub_DollarName _G_current_value) 
                      ($ Id.VSub_DollarName _G_delim)
                    }
                )
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> (DQ ($ Id.VSub_Number 2) ($ Id.VSub_DollarName _G_delim)) 
                          <Id.Lit_Star '*'>
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <func_append>
                      more_env: []
                      words: [{<func_append>} {(DQ ($ Id.VSub_At '@'))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName _G_HAVE_ARITH_OP))}]
          redirects: []
          do_fork: T
        )
        (command.Subshell
          left: <Id.Op_LParen _>
          child: 
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [{<eval>} {(SQ <'test 2 = $(( 1 + 1 ))'>)}]
              redirects: []
              do_fork: T
            )
          right: <Id.Right_Subshell _>
          redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike '_G_HAVE_ARITH_OP='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike '_G_HAVE_ARITH_OP='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_HAVE_ARITH_OP='> name:_G_HAVE_ARITH_OP)
              op: assign_op.Equal
              rhs: {<yes>}
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
    )
    (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>}
                        {<yes>}
                        {<Id.Lit_Equals '='>}
                        {(DQ ($ Id.VSub_DollarName _G_HAVE_ARITH_OP))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {
                  (SQ <'func_arith ()\n'> <'  {\n'> <'    $debug_cmd\n'> <'\n'> 
                    <'    func_arith_result=$(( $* ))\n'> <'  }'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          spids: [3107 3120]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.ShFunction
          name_tok: <func_arith>
          name: func_arith
          body: 
            (BraceGroup
              left: <Id.Lit_LBrace '{'>
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$debug_cmd'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName debug_cmd)}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'func_arith_result='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'func_arith_result='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'func_arith_result='>
                          name: func_arith_result
                        )
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Simple
                                blame_tok: <expr>
                                more_env: []
                                words: [{<expr>} {(DQ ($ Id.VSub_At '@'))}]
                                redirects: []
                                do_fork: T
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
              right: <Id.Lit_RBrace '}'>
            )
        )
      ]
      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: <test>
                      more_env: []
                      words: [
                        {<test>}
                        {<yes>}
                        {<Id.Lit_Equals '='>}
                        {(DQ ($ Id.VSub_DollarName _G_HAVE_XSI_OPS))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike '_b='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_b='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_b='> name:_b)
                  op: assign_op.Equal
                  rhs: {(SQ <'func_basename_result=${1##*/}'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_d='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_d='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_d='> name:_d)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (SQ <'case $1 in\n'> <'        */*) func_dirname_result=${1%/*}$2 ;;\n'> 
                        <'        *  ) func_dirname_result=$3        ;;\n'> <'      esac'>
                      )
                    }
                )
              ]
              redirects: []
            )
          ]
          spids: [3180 3193]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.ShAssignment
          left: <Id.Lit_VarLike '_b='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike '_b='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_b='> name:_b)
              op: assign_op.Equal
              rhs: {(SQ <'func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`'>)}
            )
          ]
          redirects: []
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike '_d='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike '_d='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_d='> name:_d)
              op: assign_op.Equal
              rhs: 
                {
                  (SQ <'func_dirname_result=`$ECHO "$1"  |$SED "$sed_dirname"`\n'> 
                    <'      if test "X$func_dirname_result" = "X$1"; then\n'> <'        func_dirname_result=$3\n'> <'      else\n'> 
                    <'        func_append func_dirname_result "$2"\n'> <'      fi'>
                  )
                }
            )
          ]
          redirects: []
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <eval>
      more_env: []
      words: [
        {<eval>}
        {(SQ <'func_basename ()\n'> <'{\n'> <'    $debug_cmd\n'> <'\n'> <'    '>) 
          (DQ ($ Id.VSub_DollarName _b)) (SQ <'\n'> <'}'>)
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <eval>
      more_env: []
      words: [
        {<eval>}
        {(SQ <'func_dirname ()\n'> <'{\n'> <'    $debug_cmd\n'> <'\n'> <'    '>) 
          (DQ ($ Id.VSub_DollarName _d)) (SQ <'\n'> <'}'>)
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <eval>
      more_env: []
      words: [
        {<eval>}
        {(SQ <'func_dirname_and_basename ()\n'> <'{\n'> <'    $debug_cmd\n'> <'\n'> <'    '>) 
          (DQ ($ Id.VSub_DollarName _b)) (SQ <'\n'> <'    '>) (DQ ($ Id.VSub_DollarName _d)) (SQ <'\n'> <'}'>)
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <func_echo>
      name: func_echo
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_message='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_message='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_message='> name:_G_message)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Star '*')}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_echo_IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_echo_IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'func_echo_IFS='> name:func_echo_IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName IFS)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName nl)}
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [_G_line]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName _G_message)}])
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'IFS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'IFS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_echo_IFS)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$ECHO'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName ECHO)}
                        {(DQ ($ Id.VSub_DollarName progname) <': '> ($ Id.VSub_DollarName _G_line))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_echo_IFS)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_echo_all>
      name: func_echo_all
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$ECHO'>
              more_env: []
              words: [{($ Id.VSub_DollarName ECHO)} {(DQ ($ Id.VSub_Star '*'))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_echo_infix_1>
      name: func_echo_infix_1
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$require_term_colors'>
              more_env: []
              words: [{($ Id.VSub_DollarName require_term_colors)}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike '_G_infix='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike '_G_infix='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_infix='> name:_G_infix)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_indent='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_indent='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_indent='> name:_G_indent)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName _G_infix)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_prefix='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_prefix='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_prefix='> name:_G_prefix)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName progname) <': '> ($ Id.VSub_DollarName _G_infix) <': '>)
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_message='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_message='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_message='> name:_G_message)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Star '*')}
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [_G_tc]
              iterable: 
                (for_iter.Words
                  words: [
                    {(DQ ($ Id.VSub_DollarName tc_reset))}
                    {(DQ ($ Id.VSub_DollarName tc_bold))}
                    {(DQ ($ Id.VSub_DollarName tc_standout))}
                    {(DQ ($ Id.VSub_DollarName tc_red))}
                    {(DQ ($ Id.VSub_DollarName tc_green))}
                    {(DQ ($ Id.VSub_DollarName tc_blue))}
                    {(DQ ($ Id.VSub_DollarName tc_cyan))}
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName _G_tc))}]
                          redirects: []
                          do_fork: T
                        )
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_G_esc_tc='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_G_esc_tc='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_G_esc_tc='>
                                      name: _G_esc_tc
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName ECHO)}
                                                  {(DQ ($ Id.VSub_DollarName _G_tc))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {(DQ ($ Id.VSub_DollarName sed_make_literal_regex))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_G_indent='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_G_indent='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_G_indent='>
                                      name: _G_indent
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName ECHO)}
                                                  {(DQ ($ Id.VSub_DollarName _G_indent))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {
                                                    (DQ <'s|'> ($ Id.VSub_DollarName _G_esc_tc) <'||g'>)
                                                  }
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_indent='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_indent='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_indent='> name:_G_indent)
                  op: assign_op.Equal
                  rhs: 
                    {(DQ ($ Id.VSub_DollarName progname) <': '>) 
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <echo>
                                more_env: []
                                words: [{<echo>} {(DQ ($ Id.VSub_DollarName _G_indent))}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <Id.VSub_DollarName '$SED'>
                                more_env: []
                                words: [{($ Id.VSub_DollarName SED)} {(SQ <'s|.| |g'>)}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      ) (DQ <'  '>)
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_echo_infix_1_IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_echo_infix_1_IFS='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_echo_infix_1_IFS='>
                      name: func_echo_infix_1_IFS
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName IFS)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName nl)}
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [_G_line]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName _G_message)}])
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'IFS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'IFS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_echo_infix_1_IFS)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$ECHO'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName ECHO)}
                        {
                          (DQ ($ Id.VSub_DollarName _G_prefix) ($ Id.VSub_DollarName tc_bold) 
                            ($ Id.VSub_DollarName _G_line) ($ Id.VSub_DollarName tc_reset)
                          )
                        }
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_G_prefix='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_G_prefix='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_prefix='> name:_G_prefix)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName _G_indent)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_echo_infix_1_IFS)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_error>
      name: func_error
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$require_term_colors'>
              more_env: []
              words: [{($ Id.VSub_DollarName require_term_colors)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <func_echo_infix_1>
              more_env: []
              words: [
                {<func_echo_infix_1>}
                {
                  (DQ <'  '> ($ Id.VSub_DollarName tc_standout) (${ Id.VSub_Name tc_red) <error> 
                    ($ Id.VSub_DollarName tc_reset)
                  )
                }
                {(DQ ($ Id.VSub_Star '*'))}
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_fatal_error>
      name: func_fatal_error
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <func_error>
              more_env: []
              words: [{<func_error>} {(DQ ($ Id.VSub_Star '*'))}]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName EXIT_FAILURE)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_grep>
      name: func_grep
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$GREP'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName GREP)}
                {(DQ ($ Id.VSub_Number 1))}
                {(DQ ($ Id.VSub_Number 2))}
              ]
              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
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName _G_HAVE_XSI_OPS))}]
          redirects: []
          do_fork: T
        )
        (command.Subshell
          left: <Id.Op_LParen _>
          child: 
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {(SQ <'x=a/b/c;\n'> <'      test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"'>)}
              ]
              redirects: []
              do_fork: T
            )
          right: <Id.Right_Subshell _>
          redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike '_G_HAVE_XSI_OPS='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike '_G_HAVE_XSI_OPS='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_HAVE_XSI_OPS='> name:_G_HAVE_XSI_OPS)
              op: assign_op.Equal
              rhs: {<yes>}
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
    )
    (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>}
                        {<yes>}
                        {<Id.Lit_Equals '='>}
                        {(DQ ($ Id.VSub_DollarName _G_HAVE_XSI_OPS))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {
                  (SQ <'func_len ()\n'> <'  {\n'> <'    $debug_cmd\n'> <'\n'> 
                    <'    func_len_result=${#1}\n'> <'  }'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          spids: [3865 3878]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.ShFunction
          name_tok: <func_len>
          name: func_len
          body: 
            (BraceGroup
              left: <Id.Lit_LBrace '{'>
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$debug_cmd'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName debug_cmd)}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'func_len_result='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'func_len_result='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'func_len_result='>
                          name: func_len_result
                        )
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.AndOr
                                children: [
                                  (command.Simple
                                    blame_tok: <expr>
                                    more_env: []
                                    words: [
                                      {<expr>}
                                      {(DQ ($ Id.VSub_Number 1))}
                                      {<Id.Lit_Colon ':'>}
                                      {(DQ <'.*'>)}
                                    ]
                                    redirects: [
                                      (Redir
                                        op: <Id.Redir_Great '2>'>
                                        loc: (redir_loc.Fd fd:2)
                                        arg: {<'/dev/null'>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <echo>
                                    more_env: []
                                    words: [{<echo>} {($ Id.VSub_DollarName max_cmd_len)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_DPipe _>]
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
              right: <Id.Lit_RBrace '}'>
            )
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShFunction
      name_tok: <func_mkdir_p>
      name: func_mkdir_p
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_directory_path='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_directory_path='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike '_G_directory_path='>
                      name: _G_directory_path
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_dir_list='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_dir_list='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_dir_list='> name:_G_dir_list)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName _G_directory_path))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<Id.Lit_Colon ':'>}
                                    {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                    {(DQ ($ Id.VSub_DollarName opt_dry_run))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName _G_directory_path)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <->
                          pattern: (pat.Words words:[{<-> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_G_directory_path='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_G_directory_path='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_G_directory_path='>
                                      name: _G_directory_path
                                    )
                                  op: assign_op.Equal
                                  rhs: {<'./'> ($ Id.VSub_DollarName _G_directory_path)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<Id.KW_Bang '!'>}
                                    {<-d>}
                                    {(DQ ($ Id.VSub_DollarName _G_directory_path))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_G_dir_list='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_G_dir_list='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_G_dir_list='>
                                      name: _G_dir_list
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName _G_directory_path) <Id.Lit_Colon ':'> 
                                      ($ Id.VSub_DollarName _G_dir_list)
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName _G_directory_path)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [{<Id.Lit_Star '*'> <'/'> <Id.Lit_Star '*'>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_G_directory_path='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_G_directory_path='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_G_directory_path='>
                                      name: _G_directory_path
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName ECHO)}
                                                  {(DQ ($ Id.VSub_DollarName _G_directory_path))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {<-e>}
                                                  {(DQ ($ Id.VSub_DollarName sed_dirname))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_G_dir_list='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_G_dir_list='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike '_G_dir_list='>
                              name: _G_dir_list
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <Id.VSub_DollarName '$ECHO'>
                                        more_env: []
                                        words: [
                                          {($ Id.VSub_DollarName ECHO)}
                                          {(DQ ($ Id.VSub_DollarName _G_dir_list))}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                        more_env: []
                                        words: [{($ Id.VSub_DollarName SED)} {(SQ <'s|:*$||'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'func_mkdir_p_IFS='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'func_mkdir_p_IFS='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'func_mkdir_p_IFS='>
                                  name: func_mkdir_p_IFS
                                )
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName IFS)}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'IFS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'IFS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                          op: assign_op.Equal
                          rhs: {<Id.Lit_Colon ':'>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [_G_dir]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName _G_dir_list)}])
                      semi_tok: <Id.Op_Semi _>
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'IFS='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'IFS='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_mkdir_p_IFS)}
                                )
                              ]
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$MKDIR'>
                                  more_env: []
                                  words: [
                                    {($ Id.VSub_DollarName MKDIR)}
                                    {(DQ ($ Id.VSub_DollarName _G_dir))}
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_Great '2>'>
                                      loc: (redir_loc.Fd fd:2)
                                      arg: {<'/dev/null'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <Id.Lit_Colon ':'>
                                  more_env: []
                                  words: [{<Id.Lit_Colon ':'>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'IFS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'IFS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_mkdir_p_IFS)}
                        )
                      ]
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-d>} {(DQ ($ Id.VSub_DollarName _G_directory_path))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <func_fatal_error>
                          more_env: []
                          words: [
                            {<func_fatal_error>}
                            {(DQ <'Failed to create \''> ($ Id.VSub_Number 1) <'\''>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  spids: [3970 3994]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_mktempdir>
      name: func_mktempdir
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_template='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_template='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_template='> name:_G_template)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name TMPDIR>
                        var_name: TMPDIR
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VTest_Hyphen _>
                            arg_word: {<Id.Lit_Slash '/'> <tmp>}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      ) <'/'> 
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Number 1>
                        var_name: 1
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VTest_Hyphen _>
                            arg_word: {($ Id.VSub_DollarName progname)}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              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: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<Id.Lit_Colon ':'>}
                                {<Id.Lit_Equals '='>}
                                {(DQ ($ Id.VSub_DollarName opt_dry_run))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_G_tmpdir='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_G_tmpdir='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_tmpdir='> name:_G_tmpdir)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName _G_template) <-> ($ Id.VSub_Dollar '$')}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [4269 4282]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike '_G_tmpdir='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike '_G_tmpdir='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_tmpdir='> name:_G_tmpdir)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Simple
                                blame_tok: <mktemp>
                                more_env: []
                                words: [
                                  {<mktemp>}
                                  {<-d>}
                                  {(DQ ($ Id.VSub_DollarName _G_template) <-XXXXXXXX>)}
                                ]
                                redirects: [
                                  (Redir
                                    op: <Id.Redir_Great '2>'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                                do_fork: T
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                    )
                  ]
                  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: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<Id.KW_Bang '!'>}
                                    {<-d>}
                                    {(DQ ($ Id.VSub_DollarName _G_tmpdir))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      then_kw: <Id.KW_Then then>
                      action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike '_G_tmpdir='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike '_G_tmpdir='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike '_G_tmpdir='>
                                  name: _G_tmpdir
                                )
                              op: assign_op.Equal
                              rhs: 
                                {($ Id.VSub_DollarName _G_template) <-> 
                                  (BracedVarSub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name RANDOM>
                                    var_name: RANDOM
                                    suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<0>})
                                    right: <Id.Right_DollarBrace '}'>
                                  ) ($ Id.VSub_Dollar '$')
                                }
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'func_mktempdir_umask='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'func_mktempdir_umask='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'func_mktempdir_umask='>
                                  name: func_mktempdir_umask
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Simple
                                        blame_tok: <umask>
                                        more_env: []
                                        words: [{<umask>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <umask>
                          more_env: []
                          words: [{<umask>} {<0077>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <Id.VSub_DollarName '$MKDIR'>
                          more_env: []
                          words: [{($ Id.VSub_DollarName MKDIR)} {(DQ ($ Id.VSub_DollarName _G_tmpdir))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <umask>
                          more_env: []
                          words: [{<umask>} {($ Id.VSub_DollarName func_mktempdir_umask)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      spids: [4322 4335]
                    )
                  ]
                  else_action: []
                  fi_kw: <Id.KW_Fi fi>
                  redirects: []
                )
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<-d>} {(DQ ($ Id.VSub_DollarName _G_tmpdir))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <func_fatal_error>
                      more_env: []
                      words: [
                        {<func_fatal_error>}
                        {
                          (DQ <'cannot create temporary directory \''> 
                            ($ Id.VSub_DollarName _G_tmpdir) <'\''>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_DPipe _>]
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$ECHO'>
              more_env: []
              words: [{($ Id.VSub_DollarName ECHO)} {(DQ ($ Id.VSub_DollarName _G_tmpdir))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_normal_abspath>
      name: func_normal_abspath
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_pathcar='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_pathcar='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_pathcar='> name:_G_pathcar)
                  op: assign_op.Equal
                  rhs: {(SQ <'s|^/\\([^/]*\\).*$|\\1|'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_pathcdr='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_pathcdr='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_pathcdr='> name:_G_pathcdr)
                  op: assign_op.Equal
                  rhs: {(SQ <'s|^/[^/]*||'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_removedotparts='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_removedotparts='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike '_G_removedotparts='>
                      name: _G_removedotparts
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <':dotsl\n'> <'\t\ts|/\\./|/|g\n'> <'\t\tt dotsl\n'> <'\t\ts|/\\.$|/|'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_collapseslashes='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_collapseslashes='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike '_G_collapseslashes='>
                      name: _G_collapseslashes
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'s|/\\{1,\\}|/|g'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_finalslash='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_finalslash='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_finalslash='> name:_G_finalslash)
                  op: assign_op.Equal
                  rhs: {(SQ <'s|/*$|/|'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_normal_abspath_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_normal_abspath_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_normal_abspath_result='>
                      name: func_normal_abspath_result
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_normal_abspath_tpath='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_normal_abspath_tpath='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_normal_abspath_tpath='>
                      name: func_normal_abspath_tpath
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_normal_abspath_altnamespace='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_normal_abspath_altnamespace='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_normal_abspath_altnamespace='>
                      name: func_normal_abspath_altnamespace
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName func_normal_abspath_tpath)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_DoubleQuote '"'>
                  pattern: (pat.Words words:[{(DQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <func_stripname>
                      more_env: []
                      words: [
                        {<func_stripname>}
                        {(SQ )}
                        {(SQ <'/'>)}
                        {
                          (DQ 
                            (CommandSub
                              left_token: <Id.Left_Backtick '`'>
                              child: 
                                (command.Simple
                                  blame_tok: <pwd>
                                  more_env: []
                                  words: [{<pwd>}]
                                  redirects: []
                                  do_fork: T
                                )
                              right: <Id.Backtick_Right '`'>
                            )
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_normal_abspath_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_normal_abspath_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_normal_abspath_result='>
                              name: func_normal_abspath_result
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_stripname_result)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <'///'>
                  pattern: (pat.Words words:[{<'///'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <'//'>
                  pattern: (pat.Words words:[{<'//'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_normal_abspath_altnamespace='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_normal_abspath_altnamespace='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_normal_abspath_altnamespace='>
                              name: func_normal_abspath_altnamespace
                            )
                          op: assign_op.Equal
                          rhs: {<'/'>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <'/'>
                  pattern: (pat.Words words:[{<'/'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_normal_abspath_tpath='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_normal_abspath_tpath='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_normal_abspath_tpath='>
                              name: func_normal_abspath_tpath
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <pwd>
                                    more_env: []
                                    words: [{<pwd>}]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              ) <'/'> ($ Id.VSub_DollarName func_normal_abspath_tpath)
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_normal_abspath_tpath='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_normal_abspath_tpath='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_normal_abspath_tpath='>
                      name: func_normal_abspath_tpath
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                more_env: []
                                words: [
                                  {($ Id.VSub_DollarName ECHO)}
                                  {(DQ ($ Id.VSub_DollarName func_normal_abspath_tpath))}
                                ]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <Id.VSub_DollarName '$SED'>
                                more_env: []
                                words: [
                                  {($ Id.VSub_DollarName SED)}
                                  {<-e>}
                                  {(DQ ($ Id.VSub_DollarName _G_removedotparts))}
                                  {<-e>}
                                  {(DQ ($ Id.VSub_DollarName _G_collapseslashes))}
                                  {<-e>}
                                  {(DQ ($ Id.VSub_DollarName _G_finalslash))}
                                ]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <Id.Lit_Colon ':'>
                          more_env: []
                          words: [{<Id.Lit_Colon ':'>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <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: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<'/'>}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName func_normal_abspath_tpath))}
                                      ]
                                      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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-z>}
                                                {
                                                  (DQ 
                                                    ($ Id.VSub_DollarName func_normal_abspath_result)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'func_normal_abspath_result='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'func_normal_abspath_result='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'func_normal_abspath_result='>
                                              name: func_normal_abspath_result
                                            )
                                          op: assign_op.Equal
                                          rhs: {<'/'>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [4713 4724]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [4693 4706]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_normal_abspath_tcomponent='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_normal_abspath_tcomponent='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_normal_abspath_tcomponent='>
                              name: func_normal_abspath_tcomponent
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <Id.VSub_DollarName '$ECHO'>
                                        more_env: []
                                        words: [
                                          {($ Id.VSub_DollarName ECHO)}
                                          {(DQ ($ Id.VSub_DollarName func_normal_abspath_tpath))}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                        more_env: []
                                        words: [
                                          {($ Id.VSub_DollarName SED)}
                                          {<-e>}
                                          {(DQ ($ Id.VSub_DollarName _G_pathcar))}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_normal_abspath_tpath='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_normal_abspath_tpath='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_normal_abspath_tpath='>
                              name: func_normal_abspath_tpath
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <Id.VSub_DollarName '$ECHO'>
                                        more_env: []
                                        words: [
                                          {($ Id.VSub_DollarName ECHO)}
                                          {(DQ ($ Id.VSub_DollarName func_normal_abspath_tpath))}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                        more_env: []
                                        words: [
                                          {($ Id.VSub_DollarName SED)}
                                          {<-e>}
                                          {(DQ ($ Id.VSub_DollarName _G_pathcdr))}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: 
                        (case_arg.Word
                          w: {($ Id.VSub_DollarName func_normal_abspath_tcomponent)}
                        )
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_DoubleQuote '"'>
                          pattern: (pat.Words words:[{(DQ )}])
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <..>
                          pattern: (pat.Words words:[{<..>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_dirname>
                              more_env: []
                              words: [
                                {<func_dirname>}
                                {(DQ ($ Id.VSub_DollarName func_normal_abspath_result))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'func_normal_abspath_result='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'func_normal_abspath_result='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'func_normal_abspath_result='>
                                      name: func_normal_abspath_result
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_dirname_result)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<func_normal_abspath_result>}
                                {(DQ <'/'> ($ Id.VSub_DollarName func_normal_abspath_tcomponent))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_normal_abspath_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_normal_abspath_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_normal_abspath_result='>
                      name: func_normal_abspath_result
                    )
                  op: assign_op.Equal
                  rhs: 
                    {($ Id.VSub_DollarName func_normal_abspath_altnamespace) 
                      ($ Id.VSub_DollarName func_normal_abspath_result)
                    }
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_notquiet>
      name: func_notquiet
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$opt_quiet'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName opt_quiet)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <func_echo>
                  more_env: []
                  words: [
                    {<func_echo>}
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Number 1>
                        var_name: 1
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VTest_Plus _>
                            arg_word: {(DQ ($ Id.VSub_At '@'))}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [{<Id.Lit_Colon ':'>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_relative_path>
      name: func_relative_path
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_relative_path_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_relative_path_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_relative_path_result='>
                      name: func_relative_path_result
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <func_normal_abspath>
              more_env: []
              words: [{<func_normal_abspath>} {(DQ ($ Id.VSub_Number 1))}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_relative_path_tlibdir='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_relative_path_tlibdir='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_relative_path_tlibdir='>
                      name: func_relative_path_tlibdir
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_normal_abspath_result)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <func_normal_abspath>
              more_env: []
              words: [{<func_normal_abspath>} {(DQ ($ Id.VSub_Number 2))}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_relative_path_tbindir='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_relative_path_tbindir='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_relative_path_tbindir='>
                      name: func_relative_path_tbindir
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_normal_abspath_result)}
                )
              ]
              redirects: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <Id.Lit_Colon ':'>
                          more_env: []
                          words: [{<Id.Lit_Colon ':'>}]
                          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 func_relative_path_tbindir)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.VSub_DollarName '$func_relative_path_tlibdir'>
                          pattern: 
                            (pat.Words
                              words: [{($ Id.VSub_DollarName func_relative_path_tlibdir)}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'func_relative_path_tcancelled='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'func_relative_path_tcancelled='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'func_relative_path_tcancelled='>
                                      name: func_relative_path_tcancelled
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.VSub_DollarName '$func_relative_path_tlibdir'>
                          pattern: 
                            (pat.Words
                              words: [
                                {($ Id.VSub_DollarName func_relative_path_tlibdir) <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_stripname>
                              more_env: []
                              words: [
                                {<func_stripname>}
                                {(DQ ($ Id.VSub_DollarName func_relative_path_tlibdir))}
                                {(SQ )}
                                {(DQ ($ Id.VSub_DollarName func_relative_path_tbindir))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'func_relative_path_tcancelled='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'func_relative_path_tcancelled='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'func_relative_path_tcancelled='>
                                      name: func_relative_path_tcancelled
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                )
                              ]
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-z>}
                                                {
                                                  (DQ 
                                                    ($ Id.VSub_DollarName func_relative_path_result)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'func_relative_path_result='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'func_relative_path_result='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'func_relative_path_result='>
                                              name: func_relative_path_result
                                            )
                                          op: assign_op.Equal
                                          rhs: {<.>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [5047 5058]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_dirname>
                              more_env: []
                              words: [
                                {<func_dirname>}
                                {($ Id.VSub_DollarName func_relative_path_tlibdir)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'func_relative_path_tlibdir='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'func_relative_path_tlibdir='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'func_relative_path_tlibdir='>
                                      name: func_relative_path_tlibdir
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_dirname_result)}
                                )
                              ]
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-z>}
                                                {
                                                  (DQ 
                                                    ($ Id.VSub_DollarName func_relative_path_tlibdir)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'func_relative_path_result='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'func_relative_path_result='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'func_relative_path_result='>
                                              name: func_relative_path_result
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {<'../'> ($ Id.VSub_DollarName func_relative_path_result)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'func_relative_path_tcancelled='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'func_relative_path_tcancelled='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'func_relative_path_tcancelled='>
                                              name: func_relative_path_tcancelled
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_relative_path_tbindir)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [5087 5098]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'func_relative_path_result='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'func_relative_path_result='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'func_relative_path_result='>
                                      name: func_relative_path_result
                                    )
                                  op: assign_op.Equal
                                  rhs: {<'../'> ($ Id.VSub_DollarName func_relative_path_result)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <func_stripname>
              more_env: []
              words: [
                {<func_stripname>}
                {(SQ )}
                {(SQ <'/'>)}
                {(DQ ($ Id.VSub_DollarName func_relative_path_result))}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_relative_path_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_relative_path_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_relative_path_result='>
                      name: func_relative_path_result
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <func_stripname>
              more_env: []
              words: [
                {<func_stripname>}
                {(SQ <'/'>)}
                {(SQ <'/'>)}
                {(DQ ($ Id.VSub_DollarName func_relative_path_tcancelled))}
              ]
              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>} {<-n>} {(DQ ($ Id.VSub_DollarName func_stripname_result))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <func_append>
                      more_env: []
                      words: [
                        {<func_append>}
                        {<func_relative_path_result>}
                        {(DQ <'/'> ($ Id.VSub_DollarName func_stripname_result))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [5172 5183]
                )
              ]
              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: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<-n>}
                                {(DQ ($ Id.VSub_DollarName func_relative_path_result))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <func_stripname>
                      more_env: []
                      words: [
                        {<func_stripname>}
                        {(SQ <'./'>)}
                        {(SQ )}
                        {(DQ ($ Id.VSub_DollarName func_relative_path_result))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_relative_path_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_relative_path_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_relative_path_result='>
                              name: func_relative_path_result
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_stripname_result)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [5204 5215]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName func_relative_path_result))}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'func_relative_path_result='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'func_relative_path_result='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'func_relative_path_result='>
                          name: func_relative_path_result
                        )
                      op: assign_op.Equal
                      rhs: {<.>}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [{<Id.Lit_Colon ':'>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_quote_for_eval>
      name: func_quote_for_eval
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_quote_for_eval_unquoted_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_quote_for_eval_unquoted_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_quote_for_eval_unquoted_result='>
                      name: func_quote_for_eval_unquoted_result
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_quote_for_eval_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_quote_for_eval_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_quote_for_eval_result='>
                      name: func_quote_for_eval_result
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<0>} {<-lt>} {($ Id.VSub_Pound '#')}]
                          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_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\\\'>
                                    ch: '\\'
                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                    ch: '"'
                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <Id.Lit_RBracket ']'> 
                                  <Id.Lit_Star '*'>
                                }
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_G_unquoted_arg='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_G_unquoted_arg='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_G_unquoted_arg='>
                                      name: _G_unquoted_arg
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <printf>
                                                more_env: []
                                                words: [
                                                  {<printf>}
                                                  {(SQ <'%s\\n'>)}
                                                  {(DQ ($ Id.VSub_Number 1))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {(DQ ($ Id.VSub_DollarName sed_quote_subst))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_G_unquoted_arg='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_G_unquoted_arg='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_G_unquoted_arg='>
                                      name: _G_unquoted_arg
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      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: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<-n>}
                                        {
                                          (DQ 
                                            ($ Id.VSub_DollarName func_quote_for_eval_unquoted_result)
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<func_quote_for_eval_unquoted_result>}
                                {(DQ <' '> ($ Id.VSub_DollarName _G_unquoted_arg))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [5378 5389]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <func_append>
                          more_env: []
                          words: [
                            {<func_append>}
                            {<func_quote_for_eval_unquoted_result>}
                            {(DQ ($ Id.VSub_DollarName _G_unquoted_arg))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName _G_unquoted_arg)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\['>
                                    ch: '['
                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\~'> ch:'~') 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\#'>
                                    ch: '#'
                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\^'> ch:'^') 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\&'>
                                    ch: '&'
                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'> ch:'*') 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\('>
                                    ch: '('
                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'> ch:')') 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\{'>
                                    ch: '{'
                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\}'> ch:'}') 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\|'>
                                    ch: '|'
                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\;'> ch:';') 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\<'>
                                    ch: '<'
                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\>'> ch:'>') 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\?'>
                                    ch: '?'
                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\ '>
                                    ch: ' '
                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\t'> ch:'\t') <Id.Lit_RBracket ']'> 
                                  <Id.Lit_Star '*'>
                                }
                                {<Id.Lit_Star '*'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>}
                                {(DQ )}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_G_quoted_arg='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_G_quoted_arg='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_G_quoted_arg='>
                                      name: _G_quoted_arg
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\"'>
                                        ch: '"'
                                      ) ($ Id.VSub_DollarName _G_unquoted_arg) 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\"'>
                                        ch: '"'
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_G_quoted_arg='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_G_quoted_arg='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_G_quoted_arg='>
                                      name: _G_quoted_arg
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName _G_unquoted_arg)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      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: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<-n>}
                                        {(DQ ($ Id.VSub_DollarName func_quote_for_eval_result))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<func_quote_for_eval_result>}
                                {(DQ <' '> ($ Id.VSub_DollarName _G_quoted_arg))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [5501 5512]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <func_append>
                          more_env: []
                          words: [
                            {<func_append>}
                            {<func_quote_for_eval_result>}
                            {(DQ ($ Id.VSub_DollarName _G_quoted_arg))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_quote_for_expand>
      name: func_quote_for_expand
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\\\'>
                            ch: '\\'
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_G_arg='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_G_arg='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_arg='> name:_G_arg)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <Id.VSub_DollarName '$ECHO'>
                                        more_env: []
                                        words: [
                                          {($ Id.VSub_DollarName ECHO)}
                                          {(DQ ($ Id.VSub_Number 1))}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                        more_env: []
                                        words: [
                                          {($ Id.VSub_DollarName SED)}
                                          {<-e>}
                                          {(DQ ($ Id.VSub_DollarName sed_double_quote_subst))}
                                          {<-e>}
                                          {(DQ ($ Id.VSub_DollarName sed_double_backslash))}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_G_arg='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_G_arg='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_arg='> name:_G_arg)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName _G_arg)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\['>
                            ch: '['
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\~'> ch:'~') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\#'>
                            ch: '#'
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\^'> ch:'^') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\&'>
                            ch: '&'
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'> ch:'*') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\('>
                            ch: '('
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'> ch:')') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\{'>
                            ch: '{'
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\}'> ch:'}') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\|'>
                            ch: '|'
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\;'> ch:';') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\<'>
                            ch: '<'
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\>'> ch:'>') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\?'>
                            ch: '?'
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\ '>
                            ch: ' '
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\t'> ch:'\t') <Id.Lit_RBracket ']'> 
                          <Id.Lit_Star '*'>
                        }
                        {<Id.Lit_Star '*'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>}
                        {(DQ )}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_G_arg='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_G_arg='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_arg='> name:_G_arg)
                          op: assign_op.Equal
                          rhs: 
                            {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                              ($ Id.VSub_DollarName _G_arg) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_quote_for_expand_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_quote_for_expand_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_quote_for_expand_result='>
                      name: func_quote_for_expand_result
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName _G_arg)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (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>}
                        {<yes>}
                        {<Id.Lit_Equals '='>}
                        {(DQ ($ Id.VSub_DollarName _G_HAVE_XSI_OPS))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {
                  (SQ <'func_stripname ()\n'> <'  {\n'> <'    $debug_cmd\n'> <'\n'> 
                    <'    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\n'> <'    # positional parameters, so assign one to ordinary variable first.\n'> 
                    <'    func_stripname_result=$3\n'> <'    func_stripname_result=${func_stripname_result#"$1"}\n'> 
                    <'    func_stripname_result=${func_stripname_result%"$2"}\n'> <'  }'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          spids: [5732 5745]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.ShFunction
          name_tok: <func_stripname>
          name: func_stripname
          body: 
            (BraceGroup
              left: <Id.Lit_LBrace '{'>
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$debug_cmd'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName debug_cmd)}]
                  redirects: []
                  do_fork: T
                )
                (command.Case
                  case_kw: <Id.KW_Case case>
                  to_match: (case_arg.Word w:{($ Id.VSub_Number 2)})
                  arms_start: <Id.KW_In in>
                  arms: [
                    (CaseArm
                      left: <.>
                      pattern: (pat.Words words:[{<.> <Id.Lit_Star '*'>}])
                      middle: <Id.Right_CasePat _>
                      action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'func_stripname_result='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'func_stripname_result='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'func_stripname_result='>
                                  name: func_stripname_result
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Pipeline
                                        children: [
                                          (command.Simple
                                            blame_tok: <Id.VSub_DollarName '$ECHO'>
                                            more_env: []
                                            words: [
                                              {($ Id.VSub_DollarName ECHO)}
                                              {(DQ ($ Id.VSub_Number 3))}
                                            ]
                                            redirects: []
                                            do_fork: T
                                          )
                                          (command.Simple
                                            blame_tok: <Id.VSub_DollarName '$SED'>
                                            more_env: []
                                            words: [
                                              {($ Id.VSub_DollarName SED)}
                                              {<-e>}
                                              {(DQ <'s%^'> ($ Id.VSub_Number 1) <'%%'>)}
                                              {<-e>}
                                              {
                                                (DQ <'s%'> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\\\'>
                                                    ch: '\\'
                                                  ) ($ Id.VSub_Number 2) <Id.Lit_Dollar '$'> <'%%'>
                                                )
                                              }
                                            ]
                                            redirects: []
                                            do_fork: T
                                          )
                                        ]
                                        ops: [<Id.Op_Pipe _>]
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                      ]
                      right: <Id.Op_DSemi _>
                    )
                    (CaseArm
                      left: <Id.Lit_Star '*'>
                      pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                      middle: <Id.Right_CasePat _>
                      action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'func_stripname_result='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'func_stripname_result='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'func_stripname_result='>
                                  name: func_stripname_result
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Pipeline
                                        children: [
                                          (command.Simple
                                            blame_tok: <Id.VSub_DollarName '$ECHO'>
                                            more_env: []
                                            words: [
                                              {($ Id.VSub_DollarName ECHO)}
                                              {(DQ ($ Id.VSub_Number 3))}
                                            ]
                                            redirects: []
                                            do_fork: T
                                          )
                                          (command.Simple
                                            blame_tok: <Id.VSub_DollarName '$SED'>
                                            more_env: []
                                            words: [
                                              {($ Id.VSub_DollarName SED)}
                                              {<-e>}
                                              {(DQ <'s%^'> ($ Id.VSub_Number 1) <'%%'>)}
                                              {<-e>}
                                              {
                                                (DQ <'s%'> ($ Id.VSub_Number 2) <Id.Lit_Dollar '$'> 
                                                  <'%%'>
                                                )
                                              }
                                            ]
                                            redirects: []
                                            do_fork: T
                                          )
                                        ]
                                        ops: [<Id.Op_Pipe _>]
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                      ]
                      right: <Id.Op_DSemi _>
                    )
                  ]
                  arms_end: <Id.KW_Esac esac>
                  redirects: []
                )
              ]
              redirects: []
              right: <Id.Lit_RBrace '}'>
            )
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShFunction
      name_tok: <func_show_eval>
      name: func_show_eval
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_cmd='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_cmd='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_cmd='> name:_G_cmd)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_fail_exp='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_fail_exp='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_fail_exp='> name:_G_fail_exp)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Number 2>
                        var_name: 2
                        suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{(SQ <':'>)})
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <func_quote_for_expand>
              more_env: []
              words: [{<func_quote_for_expand>} {(DQ ($ Id.VSub_DollarName _G_cmd))}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {(DQ <'func_notquiet '> ($ Id.VSub_DollarName func_quote_for_expand_result))}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName opt_dry_run)}]
                  redirects: []
                  do_fork: T
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [{<eval>} {(DQ ($ Id.VSub_DollarName _G_cmd))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_G_status='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_G_status='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_status='> name:_G_status)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '?')}
                        )
                      ]
                      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: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<0>}
                                        {<-ne>}
                                        {(DQ ($ Id.VSub_DollarName _G_status))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {
                                  (DQ <'(exit '> ($ Id.VSub_DollarName _G_status) <'); '> 
                                    ($ Id.VSub_DollarName _G_fail_exp)
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [5954 5967]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_show_eval_locale>
      name: func_show_eval_locale
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_cmd='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_cmd='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_cmd='> name:_G_cmd)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_fail_exp='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_fail_exp='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_fail_exp='> name:_G_fail_exp)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Number 2>
                        var_name: 2
                        suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{(SQ <':'>)})
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$opt_quiet'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName opt_quiet)}]
                  redirects: []
                  do_fork: T
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Simple
                      blame_tok: <func_quote_for_expand>
                      more_env: []
                      words: [{<func_quote_for_expand>} {(DQ ($ Id.VSub_DollarName _G_cmd))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {(DQ <'func_echo '> ($ Id.VSub_DollarName func_quote_for_expand_result))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName opt_dry_run)}]
                  redirects: []
                  do_fork: T
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {
                          (DQ ($ Id.VSub_DollarName _G_user_locale) <'\n'> <'\t    '> 
                            ($ Id.VSub_DollarName _G_cmd)
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_G_status='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_G_status='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_status='> name:_G_status)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '?')}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [{<eval>} {(DQ ($ Id.VSub_DollarName _G_safe_locale))}]
                      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>}
                                        {<0>}
                                        {<-ne>}
                                        {(DQ ($ Id.VSub_DollarName _G_status))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {
                                  (DQ <'(exit '> ($ Id.VSub_DollarName _G_status) <'); '> 
                                    ($ Id.VSub_DollarName _G_fail_exp)
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [6085 6098]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_tr_sh>
      name: func_tr_sh
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_LBracket '['>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>}
                        {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <Id.KW_Bang '!'> <a-zA-Z0-9_> 
                          <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_tr_sh_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_tr_sh_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_tr_sh_result='>
                              name: func_tr_sh_result
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <Id.VSub_DollarName '$ECHO'>
                                        more_env: []
                                        words: [
                                          {($ Id.VSub_DollarName ECHO)}
                                          {(DQ ($ Id.VSub_Number 1))}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                        more_env: []
                                        words: [
                                          {($ Id.VSub_DollarName SED)}
                                          {<-e>}
                                          {(SQ <'s/^\\([0-9]\\)/_\\1/'>)}
                                          {<-e>}
                                          {(SQ <'s/[^a-zA-Z0-9_]/_/g'>)}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_tr_sh_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_tr_sh_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_tr_sh_result='>
                              name: func_tr_sh_result
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_verbose>
      name: func_verbose
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$opt_verbose'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName opt_verbose)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <func_echo>
                  more_env: []
                  words: [{<func_echo>} {(DQ ($ Id.VSub_Star '*'))}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [{<Id.Lit_Colon ':'>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_warn_and_continue>
      name: func_warn_and_continue
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$require_term_colors'>
              more_env: []
              words: [{($ Id.VSub_DollarName require_term_colors)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <func_echo_infix_1>
              more_env: []
              words: [
                {<func_echo_infix_1>}
                {(DQ (${ Id.VSub_Name tc_red) <warning> ($ Id.VSub_DollarName tc_reset))}
                {(DQ ($ Id.VSub_Star '*'))}
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_warning>
      name: func_warning
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName warning_categories) <' '>)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_Number 1) <' '>) <Id.Lit_Star '*'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <func_internal_error>
                      more_env: []
                      words: [
                        {<func_internal_error>}
                        {(DQ <'invalid warning category \''> ($ Id.VSub_Number 1) <'\''>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_category='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_category='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_category='> name:_G_category)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName opt_warning_types) <' '>)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName _G_category) <' '>) 
                          <Id.Lit_Star '*'>
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$warning_func'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName warning_func)}
                        {
                          (BracedVarSub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Number 1>
                            var_name: 1
                            suffix_op: 
                              (suffix_op.Unary
                                op: <Id.VTest_Plus _>
                                arg_word: {(DQ ($ Id.VSub_At '@'))}
                              )
                            right: <Id.Right_DollarBrace '}'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_sort_ver>
      name: func_sort_ver
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <printf>
                  more_env: []
                  words: [
                    {<printf>}
                    {(SQ <'%s\\n%s\\n'>)}
                    {(DQ ($ Id.VSub_Number 1))}
                    {(DQ ($ Id.VSub_Number 2))}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <sort>
                  more_env: []
                  words: [
                    {<sort>}
                    {<-t.>}
                    {<-k>}
                    {<1> <Id.Lit_Comma ','> <1n>}
                    {<-k>}
                    {<2> <Id.Lit_Comma ','> <2n>}
                    {<-k>}
                    {<3> <Id.Lit_Comma ','> <3n>}
                    {<-k>}
                    {<4> <Id.Lit_Comma ','> <4n>}
                    {<-k>}
                    {<5> <Id.Lit_Comma ','> <5n>}
                    {<-k>}
                    {<6> <Id.Lit_Comma ','> <6n>}
                    {<-k>}
                    {<7> <Id.Lit_Comma ','> <7n>}
                    {<-k>}
                    {<8> <Id.Lit_Comma ','> <8n>}
                    {<-k>}
                    {<9> <Id.Lit_Comma ','> <9n>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_lt_ver>
      name: func_lt_ver
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test>
              more_env: []
              words: [
                {<test>}
                {(DQ <x> ($ Id.VSub_Number 1))}
                {<Id.Lit_Equals '='>}
                {<x> 
                  (CommandSub
                    left_token: <Id.Left_Backtick '`'>
                    child: 
                      (command.Pipeline
                        children: [
                          (command.Simple
                            blame_tok: <func_sort_ver>
                            more_env: []
                            words: [
                              {<func_sort_ver>}
                              {(DQ ($ Id.VSub_Number 1))}
                              {(DQ ($ Id.VSub_Number 2))}
                            ]
                            redirects: []
                            do_fork: T
                          )
                          (command.Simple
                            blame_tok: <Id.VSub_DollarName '$SED'>
                            more_env: []
                            words: [{($ Id.VSub_DollarName SED)} {<1q>}]
                            redirects: []
                            do_fork: T
                          )
                        ]
                        ops: [<Id.Op_Pipe _>]
                      )
                    right: <Id.Backtick_Right '`'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Sentence
      child: 
        (command.ShAssignment
          left: <Id.Lit_VarLike 'scriptversion='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'scriptversion='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'scriptversion='> name:scriptversion)
              op: assign_op.Equal
              rhs: {<2014-01-07.03>}
            )
          ]
          redirects: []
        )
      terminator: <Id.Op_Semi _>
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'usage='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'usage='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'usage='> name:usage)
          op: assign_op.Equal
          rhs: {(SQ <'$progpath [OPTION]...'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'usage_message='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'usage_message='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'usage_message='> name:usage_message)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'       --debug        enable verbose shell tracing\n'> 
                <'   -W, --warnings=CATEGORY\n'> <'                      report the warnings falling in CATEGORY [all]\n'> 
                <'   -v, --verbose      verbosely report processing\n'> <'       --version      print version information and exit\n'> 
                <'   -h, --help         print short or long help message and exit\n'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'long_help_message='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'long_help_message='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'long_help_message='> name:long_help_message)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'\n'> <'Warning categories include:\n'> 
                <'       \'all\'          show all warnings\n'> <'       \'none\'         turn off all the warnings\n'> 
                <'       \'error\'        warnings are treated as fatal errors'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'fatal_help='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'fatal_help='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fatal_help='> name:fatal_help)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'Try \''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                <'progname --help\' for more information.'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <func_hookable>
      name: func_hookable
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <func_append>
              more_env: []
              words: [{<func_append>} {<hookable_fns>} {(DQ <' '> ($ Id.VSub_Number 1))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_add_hook>
      name: func_add_hook
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName hookable_fns) <' '>)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_Number 1) <' '>) <Id.Lit_Star '*'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <func_fatal_error>
                      more_env: []
                      words: [
                        {<func_fatal_error>}
                        {(DQ <'\''> ($ Id.VSub_Number 1) <'\' does not accept hook functions.'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [{<eval>} {<func_append>} {(${ Id.VSub_Number 1) <_hooks>} {(SQ <'" $2"'>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_remove_hook>
      name: func_remove_hook
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {(${ Id.VSub_Number 1) <Id.Lit_VarLike '_hooks='> (SQ <'`$ECHO "\\$'>) 
                  ($ Id.VSub_Number 1) (SQ <'_hooks" |$SED "s| '>) ($ Id.VSub_Number 2) (SQ <'||"`'>)
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_run_hooks>
      name: func_run_hooks
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName hookable_fns) <' '>)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_Number 1) <' '>) <Id.Lit_Star '*'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <func_fatal_error>
                      more_env: []
                      words: [
                        {<func_fatal_error>}
                        {(DQ <'\''> ($ Id.VSub_Number 1) <'\' does not support hook funcions.n'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <eval>
                  more_env: []
                  words: [
                    {<eval>}
                    {<Id.Lit_VarLike '_G_hook_fns='> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\$'>
                        ch: '$'
                      ) ($ Id.VSub_Number 1) <_hooks>
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [_G_hook]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName _G_hook_fns)}])
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [{<eval>} {($ Id.VSub_DollarName _G_hook)} {(SQ <'"$@"'>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {<Id.Lit_VarLike '_G_hook_result='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) (${ Id.VSub_Name _G_hook) <_result>
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <eval>
                          more_env: []
                          words: [{<eval>} {<set>} {<dummy>} {(DQ ($ Id.VSub_DollarName _G_hook_result))}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <func_quote_for_eval>
              more_env: []
              words: [
                {<func_quote_for_eval>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Number 1>
                    var_name: 1
                    suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_run_hooks_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_run_hooks_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_run_hooks_result='>
                      name: func_run_hooks_result
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_quote_for_eval_result)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <func_hookable>
      more_env: []
      words: [{<func_hookable>} {<func_options>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <func_options>
      name: func_options
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <func_options_prep>
              more_env: []
              words: [
                {<func_options_prep>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Number 1>
                    var_name: 1
                    suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {<func_parse_options>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name func_options_prep_result>
                    var_name: func_options_prep_result
                    suffix_op: 
                      (suffix_op.Unary
                        op: <Id.VTest_Plus _>
                        arg_word: {(DQ ($ Id.VSub_DollarName func_options_prep_result))}
                      )
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {<func_validate_options>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name func_parse_options_result>
                    var_name: func_parse_options_result
                    suffix_op: 
                      (suffix_op.Unary
                        op: <Id.VTest_Plus _>
                        arg_word: {(DQ ($ Id.VSub_DollarName func_parse_options_result))}
                      )
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {<func_run_hooks>}
                {<func_options>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name func_validate_options_result>
                    var_name: func_validate_options_result
                    suffix_op: 
                      (suffix_op.Unary
                        op: <Id.VTest_Plus _>
                        arg_word: {(DQ ($ Id.VSub_DollarName func_validate_options_result))}
                      )
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_options_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_options_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_options_result='>
                      name: func_options_result
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_run_hooks_result)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <func_hookable>
      more_env: []
      words: [{<func_hookable>} {<func_options_prep>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <func_options_prep>
      name: func_options_prep
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'opt_verbose='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'opt_verbose='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opt_verbose='> name:opt_verbose)
                  op: assign_op.Equal
                  rhs: {<false>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'opt_warning_types='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'opt_warning_types='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'opt_warning_types='>
                      name: opt_warning_types
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <func_run_hooks>
              more_env: []
              words: [
                {<func_run_hooks>}
                {<func_options_prep>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Number 1>
                    var_name: 1
                    suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_options_prep_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_options_prep_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_options_prep_result='>
                      name: func_options_prep_result
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_run_hooks_result)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <func_hookable>
      more_env: []
      words: [{<func_hookable>} {<func_parse_options>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <func_parse_options>
      name: func_parse_options
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_parse_options_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_parse_options_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_parse_options_result='>
                      name: func_parse_options_result
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {($ Id.VSub_Pound '#')} {<-gt>} {<0>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <func_run_hooks>
                      more_env: []
                      words: [
                        {<func_run_hooks>}
                        {<func_parse_options>}
                        {
                          (BracedVarSub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Number 1>
                            var_name: 1
                            suffix_op: 
                              (suffix_op.Unary
                                op: <Id.VTest_Plus _>
                                arg_word: {(DQ ($ Id.VSub_At '@'))}
                              )
                            right: <Id.Right_DollarBrace '}'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <eval>
                          more_env: []
                          words: [
                            {<eval>}
                            {<set>}
                            {<dummy>}
                            {(DQ ($ Id.VSub_DollarName func_run_hooks_result))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {($ Id.VSub_Pound '#')} {<-gt>} {<0>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Break break>
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_G_opt='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_G_opt='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_opt='> name:_G_opt)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName _G_opt)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <--debug>
                          pattern: (pat.Words words:[{<--debug>} {<-x>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'debug_cmd='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'debug_cmd='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'debug_cmd='>
                                      name: debug_cmd
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <'set -x'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_echo>
                              more_env: []
                              words: [{<func_echo>} {(DQ <'enabling shell trace mode'>)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
                              more_env: []
                              words: [{($ Id.VSub_DollarName debug_cmd)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--no-warnings>
                          pattern: 
                            (pat.Words
                              words: [{<--no-warnings>} {<--no-warning>} {<--no-warn>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [
                                {<set>}
                                {<dummy>}
                                {<--warnings>}
                                {<none>}
                                {
                                  (BracedVarSub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Number 1>
                                    var_name: 1
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op: <Id.VTest_Plus _>
                                        arg_word: {(DQ ($ Id.VSub_At '@'))}
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--warnings>
                          pattern: (pat.Words words:[{<--warnings>} {<--warning>} {<-W>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {($ Id.VSub_Pound '#')} {<Id.Lit_Equals '='>} {<0>}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_missing_arg>
                                  more_env: []
                                  words: [{<func_missing_arg>} {($ Id.VSub_DollarName _G_opt)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Break break>
                                )
                              ]
                              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: 
                                    {
                                      (DQ <' '> ($ Id.VSub_DollarName warning_categories) <' '> 
                                        ($ Id.VSub_Number 1)
                                      )
                                    }
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_Number 1) <' '>) 
                                          <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_append_uniq>
                                      more_env: []
                                      words: [
                                        {<func_append_uniq>}
                                        {<opt_warning_types>}
                                        {(DQ <' '> ($ Id.VSub_Number 1))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <all>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'opt_warning_types='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'opt_warning_types='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'opt_warning_types='>
                                              name: opt_warning_types
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName warning_categories)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <none>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'opt_warning_types='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'opt_warning_types='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'opt_warning_types='>
                                              name: opt_warning_types
                                            )
                                          op: assign_op.Equal
                                          rhs: {<none>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'warning_func='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'warning_func='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'warning_func='>
                                              name: warning_func
                                            )
                                          op: assign_op.Equal
                                          rhs: {<Id.Lit_Colon ':'>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <error>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'opt_warning_types='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'opt_warning_types='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'opt_warning_types='>
                                              name: opt_warning_types
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName warning_categories)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'warning_func='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'warning_func='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'warning_func='>
                                              name: warning_func
                                            )
                                          op: assign_op.Equal
                                          rhs: {<func_fatal_error>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_fatal_error>
                                      more_env: []
                                      words: [
                                        {<func_fatal_error>}
                                        {
                                          (DQ <'unsupported warning category: \''> 
                                            ($ Id.VSub_Number 1) <'\''>
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--verbose>
                          pattern: (pat.Words words:[{<--verbose>} {<-v>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'opt_verbose='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'opt_verbose='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'opt_verbose='>
                                      name: opt_verbose
                                    )
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Colon ':'>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--version>
                          pattern: (pat.Words words:[{<--version>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_version>
                              more_env: []
                              words: [{<func_version>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <->
                          pattern: 
                            (pat.Words
                              words: [
                                {<-> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\?'>
                                    ch: '?'
                                  )
                                }
                                {<-h>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_usage>
                              more_env: []
                              words: [{<func_usage>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--help>
                          pattern: (pat.Words words:[{<--help>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_help>
                              more_env: []
                              words: [{<func_help>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-->
                          pattern: 
                            (pat.Words
                              words: [{<--> <Id.Lit_Star '*'> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_split_equals>
                              more_env: []
                              words: [{<func_split_equals>} {(DQ ($ Id.VSub_DollarName _G_opt))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [
                                {<set>}
                                {<dummy>}
                                {(DQ ($ Id.VSub_DollarName func_split_equals_lhs))}
                                {(DQ ($ Id.VSub_DollarName func_split_equals_rhs))}
                                {
                                  (BracedVarSub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Number 1>
                                    var_name: 1
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op: <Id.VTest_Plus _>
                                        arg_word: {(DQ ($ Id.VSub_At '@'))}
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-W>
                          pattern: (pat.Words words:[{<-W> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_split_short_opt>
                              more_env: []
                              words: [{<func_split_short_opt>} {(DQ ($ Id.VSub_DollarName _G_opt))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [
                                {<set>}
                                {<dummy>}
                                {(DQ ($ Id.VSub_DollarName func_split_short_opt_name))}
                                {(DQ ($ Id.VSub_DollarName func_split_short_opt_arg))}
                                {
                                  (BracedVarSub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Number 1>
                                    var_name: 1
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op: <Id.VTest_Plus _>
                                        arg_word: {(DQ ($ Id.VSub_At '@'))}
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <->
                          pattern: 
                            (pat.Words
                              words: [
                                {<-> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\?'>
                                    ch: '?'
                                  ) <Id.Lit_Star '*'>
                                }
                                {<-h> <Id.Lit_Star '*'>}
                                {<-v> <Id.Lit_Star '*'>}
                                {<-x> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_split_short_opt>
                              more_env: []
                              words: [{<func_split_short_opt>} {(DQ ($ Id.VSub_DollarName _G_opt))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [
                                {<set>}
                                {<dummy>}
                                {(DQ ($ Id.VSub_DollarName func_split_short_opt_name))}
                                {(DQ <-> ($ Id.VSub_DollarName func_split_short_opt_arg))}
                                {
                                  (BracedVarSub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Number 1>
                                    var_name: 1
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op: <Id.VTest_Plus _>
                                        arg_word: {(DQ ($ Id.VSub_At '@'))}
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-->
                          pattern: (pat.Words words:[{<-->}])
                          middle: <Id.Right_CasePat _>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <->
                          pattern: (pat.Words words:[{<-> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_fatal_help>
                              more_env: []
                              words: [
                                {<func_fatal_help>}
                                {
                                  (DQ <'unrecognised option: \''> ($ Id.VSub_DollarName _G_opt) <'\''>)
                                }
                              ]
                              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.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <set>
                                  more_env: []
                                  words: [
                                    {<set>}
                                    {<dummy>}
                                    {(DQ ($ Id.VSub_DollarName _G_opt))}
                                    {
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Number 1>
                                        var_name: 1
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VTest_Plus _>
                                            arg_word: {(DQ ($ Id.VSub_At '@'))}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <shift>
                                  more_env: []
                                  words: [{<shift>}]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <func_quote_for_eval>
              more_env: []
              words: [
                {<func_quote_for_eval>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Number 1>
                    var_name: 1
                    suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_parse_options_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_parse_options_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_parse_options_result='>
                      name: func_parse_options_result
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_quote_for_eval_result)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <func_hookable>
      more_env: []
      words: [{<func_hookable>} {<func_validate_options>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <func_validate_options>
      name: func_validate_options
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName opt_warning_types))}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'opt_warning_types='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'opt_warning_types='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'opt_warning_types='>
                          name: opt_warning_types
                        )
                      op: assign_op.Equal
                      rhs: {(DQ <' '> ($ Id.VSub_DollarName warning_categories))}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <func_run_hooks>
              more_env: []
              words: [
                {<func_run_hooks>}
                {<func_validate_options>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Number 1>
                    var_name: 1
                    suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$exit_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName exit_cmd)} {($ Id.VSub_DollarName EXIT_FAILURE)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_validate_options_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_validate_options_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_validate_options_result='>
                      name: func_validate_options_result
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_run_hooks_result)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_fatal_help>
      name: func_fatal_help
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <ECHO>}
                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  (DQ <'Usage: '> ($ Id.VSub_DollarName usage)) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <ECHO>}
                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  (DQ ($ Id.VSub_DollarName fatal_help)) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <func_error>
              more_env: []
              words: [
                {<func_error>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Number 1>
                    var_name: 1
                    suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName EXIT_FAILURE)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_help>
      name: func_help
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <func_usage_message>
              more_env: []
              words: [{<func_usage_message>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$ECHO'>
              more_env: []
              words: [{($ Id.VSub_DollarName ECHO)} {(DQ ($ Id.VSub_DollarName long_help_message))}]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_missing_arg>
      name: func_missing_arg
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <func_error>
              more_env: []
              words: [{<func_error>} {(DQ <'Missing argument for \''> ($ Id.VSub_Number 1) <'\'.'>)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'exit_cmd='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'exit_cmd='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exit_cmd='> name:exit_cmd)
                  op: assign_op.Equal
                  rhs: {<Id.ControlFlow_Exit exit>}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName _G_HAVE_XSI_OPS))}]
          redirects: []
          do_fork: T
        )
        (command.Subshell
          left: <Id.Op_LParen _>
          child: 
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {(SQ <'x=a/b/c;\n'> <'      test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"'>)}
              ]
              redirects: []
              do_fork: T
            )
          right: <Id.Right_Subshell _>
          redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike '_G_HAVE_XSI_OPS='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike '_G_HAVE_XSI_OPS='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_HAVE_XSI_OPS='> name:_G_HAVE_XSI_OPS)
              op: assign_op.Equal
              rhs: {<yes>}
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {<yes>}
                    {<Id.Lit_Equals '='>}
                    {(DQ ($ Id.VSub_DollarName _G_HAVE_XSI_OPS))}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {
                  (SQ <'func_split_equals ()\n'> <'  {\n'> <'      $debug_cmd\n'> <'\n'> 
                    <'      func_split_equals_lhs=${1%%=*}\n'> <'      func_split_equals_rhs=${1#*=}\n'> <'      test "x$func_split_equals_lhs" = "x$1" \\\n'> 
                    <'        && func_split_equals_rhs=\n'> <'  }'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          spids: [8504 8516]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.ShFunction
          name_tok: <func_split_equals>
          name: func_split_equals
          body: 
            (BraceGroup
              left: <Id.Lit_LBrace '{'>
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$debug_cmd'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName debug_cmd)}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'func_split_equals_lhs='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'func_split_equals_lhs='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'func_split_equals_lhs='>
                          name: func_split_equals_lhs
                        )
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Simple
                                blame_tok: <expr>
                                more_env: []
                                words: [
                                  {<expr>}
                                  {(DQ <x> ($ Id.VSub_Number 1))}
                                  {<Id.Lit_Colon ':'>}
                                  {(SQ <'x\\([^=]*\\)'>)}
                                ]
                                redirects: []
                                do_fork: T
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'func_split_equals_rhs='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'func_split_equals_rhs='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'func_split_equals_rhs='>
                          name: func_split_equals_rhs
                        )
                      op: assign_op.Equal
                      rhs: (rhs_word__Empty)
                    )
                  ]
                  redirects: []
                )
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [
                        {<test>}
                        {(DQ <x> ($ Id.VSub_DollarName func_split_equals_lhs))}
                        {<Id.Lit_Equals '='>}
                        {(DQ <x> ($ Id.VSub_Number 1))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_split_equals_rhs='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_split_equals_rhs='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_split_equals_rhs='>
                              name: func_split_equals_rhs
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <expr>
                                    more_env: []
                                    words: [
                                      {<expr>}
                                      {(DQ <x> ($ Id.VSub_Number 1))}
                                      {<Id.Lit_Colon ':'>}
                                      {(SQ <'x[^=]*=\\(.*\\)$'>)}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  ops: [<Id.Op_DPipe _>]
                )
              ]
              redirects: []
              right: <Id.Lit_RBrace '}'>
            )
        )
      ]
      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.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {<yes>}
                    {<Id.Lit_Equals '='>}
                    {(DQ ($ Id.VSub_DollarName _G_HAVE_XSI_OPS))}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {
                  (SQ <'func_split_short_opt ()\n'> <'  {\n'> <'      $debug_cmd\n'> <'\n'> 
                    <'      func_split_short_opt_arg=${1#??}\n'> <'      func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\n'> <'  }'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          spids: [8645 8657]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.ShFunction
          name_tok: <func_split_short_opt>
          name: func_split_short_opt
          body: 
            (BraceGroup
              left: <Id.Lit_LBrace '{'>
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$debug_cmd'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName debug_cmd)}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'func_split_short_opt_name='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'func_split_short_opt_name='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'func_split_short_opt_name='>
                          name: func_split_short_opt_name
                        )
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Simple
                                blame_tok: <expr>
                                more_env: []
                                words: [
                                  {<expr>}
                                  {(DQ <x> ($ Id.VSub_Number 1))}
                                  {<Id.Lit_Colon ':'>}
                                  {(SQ <'x-\\(.\\)'>)}
                                ]
                                redirects: []
                                do_fork: T
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'func_split_short_opt_arg='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'func_split_short_opt_arg='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'func_split_short_opt_arg='>
                          name: func_split_short_opt_arg
                        )
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Simple
                                blame_tok: <expr>
                                more_env: []
                                words: [
                                  {<expr>}
                                  {(DQ <x> ($ Id.VSub_Number 1))}
                                  {<Id.Lit_Colon ':'>}
                                  {(SQ <'x-.\\(.*\\)$'>)}
                                ]
                                redirects: []
                                do_fork: T
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
              right: <Id.Lit_RBrace '}'>
            )
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShFunction
      name_tok: <func_usage>
      name: func_usage
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <func_usage_message>
              more_env: []
              words: [{<func_usage_message>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$ECHO'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName ECHO)}
                {
                  (DQ <'Run \''> ($ Id.VSub_DollarName progname) <' --help |'> 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name PAGER>
                      var_name: PAGER
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<more>})
                      right: <Id.Right_DollarBrace '}'>
                    ) <'\' for full usage'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_usage_message>
      name: func_usage_message
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <ECHO>}
                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  (DQ <'Usage: '> ($ Id.VSub_DollarName usage)) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$SED'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName SED)}
                {<-n>}
                {
                  (SQ <'s|^# ||\n'> <'        /^Written by/{\n'> <'          x;p;x\n'> <'        }\n'> 
                    <'\th\n'> <'\t/^Written by/q'>
                  )
                }
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {(DQ ($ Id.VSub_DollarName progpath))}
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <ECHO>}
                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                  (DQ ($ Id.VSub_DollarName usage_message)) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_version>
      name: func_version
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <printf>
              more_env: []
              words: [
                {<printf>}
                {(SQ <'%s\\n'>)}
                {(DQ ($ Id.VSub_DollarName progname) <' '> ($ Id.VSub_DollarName scriptversion))}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$SED'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName SED)}
                {<-n>}
                {
                  (SQ <'\n'> <'        /(C)/!b go\n'> <'        :more\n'> <'        /\\./!{\n'> 
                    <'          N\n'> <'          s|\\n# | |\n'> <'          b more\n'> <'        }\n'> <'        :go\n'> 
                    <'        /^# Written by /,/# warranty; / {\n'> <'          s|^# ||\n'> <'          s|^# *$||\n'> 
                    <'          s|\\((C)\\)[ 0-9,-]*[ ,-]\\([1-9][0-9]* \\)|\\1 \\2|\n'> <'          p\n'> <'        }\n'> <'        /^# Written by / {\n'> <'          s|^# ||\n'> 
                    <'          p\n'> <'        }\n'> <'        /^warranty; /q'>
                  )
                }
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {(DQ ($ Id.VSub_DollarName progpath))}
                )
              ]
              do_fork: T
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_QMark '?')}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'scriptversion='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'scriptversion='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'scriptversion='> name:scriptversion)
          op: assign_op.Equal
          rhs: {(SQ <'(GNU libtool) 2.4.6'>)}
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <func_echo>
      name: func_echo
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_G_message='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_G_message='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_message='> name:_G_message)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Star '*')}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_echo_IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_echo_IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'func_echo_IFS='> name:func_echo_IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName IFS)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName nl)}
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [_G_line]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName _G_message)}])
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'IFS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'IFS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_echo_IFS)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$ECHO'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName ECHO)}
                        {
                          (DQ ($ Id.VSub_DollarName progname) 
                            (BracedVarSub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Name opt_mode>
                              var_name: opt_mode
                              suffix_op: 
                                (suffix_op.Unary
                                  op: <Id.VTest_Plus _>
                                  arg_word: {<': '> ($ Id.VSub_DollarName opt_mode)}
                                )
                              right: <Id.Right_DollarBrace '}'>
                            ) <': '> ($ Id.VSub_DollarName _G_line)
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_echo_IFS)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_warning>
      name: func_warning
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$warning_func'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName warning_func)}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Number 1>
                    var_name: 1
                    suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'usage='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'usage='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'usage='> name:usage)
          op: assign_op.Equal
          rhs: {(SQ <'$progpath [OPTION]... [MODE-ARG]...'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'usage_message='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'usage_message='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'usage_message='> name:usage_message)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'Options:\n'> <'       --config             show all configuration variables\n'> 
                <'       --debug              enable verbose shell tracing\n'> <'   -n, --dry-run            display commands without modifying any files\n'> 
                <'       --features           display basic configuration information and exit\n'> <'       --mode=MODE          use operation mode MODE\n'> 
                <'       --no-warnings        equivalent to \'-Wnone\'\n'> <'       --preserve-dup-deps  don\'t remove duplicate dependency libraries\n'> 
                <'       --quiet, --silent    don\'t print informational messages\n'> <'       --tag=TAG            use configuration variables from tag TAG\n'> 
                <'   -v, --verbose            print more informational messages than default\n'> <'       --version            print version information\n'> 
                <'   -W, --warnings=CATEGORY  report the warnings falling in CATEGORY [all]\n'> <'   -h, --help, --help-all   print short, long, or detailed help message\n'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <func_help>
      name: func_help
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <func_usage_message>
              more_env: []
              words: [{<func_usage_message>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$ECHO'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName ECHO)}
                {
                  (DQ ($ Id.VSub_DollarName long_help_message) <'\n'> <'\n'> 
                    <'MODE must be one of the following:\n'> <'\n'> <'       clean           remove files from the build directory\n'> 
                    <'       compile         compile a source file into a libtool object\n'> <'       execute         automatically set library path, then run a program\n'> 
                    <'       finish          complete the installation of libtool libraries\n'> <'       install         install libraries or executables\n'> 
                    <'       link            create a library or an executable\n'> <'       uninstall       remove libraries from an installed directory\n'> <'\n'> 
                    <'MODE-ARGS vary depending on the MODE.  When passed as first option,\n'> <'\'--mode=MODE\' may be abbreviated as \'MODE\' or a unique abbreviation of that.\n'> <'Try \''> 
                    ($ Id.VSub_DollarName progname) <' --help --mode=MODE\' for a more detailed description of MODE.\n'> <'\n'> 
                    <'When reporting a bug, please describe a test case to reproduce it and\n'> <'include the following information:\n'> <'\n'> <'       host-triplet:   '> ($ Id.VSub_DollarName host) 
                    <'\n'> <'       shell:          '> ($ Id.VSub_DollarName SHELL) <'\n'> <'       compiler:       '> 
                    ($ Id.VSub_DollarName LTCC) <'\n'> <'       compiler flags: '> ($ Id.VSub_DollarName LTCFLAGS) <'\n'> <'       linker:         '> 
                    ($ Id.VSub_DollarName LD) <' (gnu? '> ($ Id.VSub_DollarName with_gnu_ld) <')\n'> <'       version:        '> 
                    ($ Id.VSub_DollarName progname) <' (GNU libtool) 2.4.6\n'> <'       automake:       '> 
                    (CommandSub
                      left_token: <Id.Left_Backtick '`'>
                      child: 
                        (command.Pipeline
                          children: [
                            (command.Subshell
                              left: <Id.Op_LParen _>
                              child: 
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$AUTOMAKE'>
                                  more_env: []
                                  words: [{($ Id.VSub_DollarName AUTOMAKE)} {<--version>}]
                                  redirects: []
                                  do_fork: T
                                )
                              right: <Id.Right_Subshell _>
                              redirects: [
                                (Redir
                                  op: <Id.Redir_Great '2>'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {<'/dev/null'>}
                                )
                              ]
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$SED'>
                              more_env: []
                              words: [{($ Id.VSub_DollarName SED)} {<1q>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_Pipe _>]
                        )
                      right: <Id.Backtick_Right '`'>
                    ) <'\n'> <'       autoconf:       '> 
                    (CommandSub
                      left_token: <Id.Left_Backtick '`'>
                      child: 
                        (command.Pipeline
                          children: [
                            (command.Subshell
                              left: <Id.Op_LParen _>
                              child: 
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$AUTOCONF'>
                                  more_env: []
                                  words: [{($ Id.VSub_DollarName AUTOCONF)} {<--version>}]
                                  redirects: []
                                  do_fork: T
                                )
                              right: <Id.Right_Subshell _>
                              redirects: [
                                (Redir
                                  op: <Id.Redir_Great '2>'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {<'/dev/null'>}
                                )
                              ]
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$SED'>
                              more_env: []
                              words: [{($ Id.VSub_DollarName SED)} {<1q>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_Pipe _>]
                        )
                      right: <Id.Backtick_Right '`'>
                    ) <'\n'> <'\n'> <'Report bugs to <bug-libtool@gnu.org>.\n'> 
                    <'GNU libtool home page: <http://www.gnu.org/s/libtool/>.\n'> <'General help using GNU software: <http://www.gnu.org/gethelp/>.'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'lo2o='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'lo2o='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lo2o='> name:lo2o)
          op: assign_op.Equal
          rhs: 
            {<'s/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <.lo> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'/.'> ($ Id.VSub_DollarName objext) <'/'>
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'o2lo='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'o2lo='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o2lo='> name:o2lo)
          op: assign_op.Equal
          rhs: 
            {<'s/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <.> 
              ($ Id.VSub_DollarName objext) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'/.lo/'>
            }
        )
      ]
      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: <test>
                      more_env: []
                      words: [
                        {<test>}
                        {<yes>}
                        {<Id.Lit_Equals '='>}
                        {(DQ ($ Id.VSub_DollarName _G_HAVE_XSI_OPS))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {
                  (SQ <'func_lo2o ()\n'> <'  {\n'> <'    case $1 in\n'> 
                    <'      *.lo) func_lo2o_result=${1%.lo}.$objext ;;\n'> <'      *   ) func_lo2o_result=$1               ;;\n'> <'    esac\n'> <'  }'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {(SQ <'func_xform ()\n'> <'  {\n'> <'    func_xform_result=${1%.*}.lo\n'> <'  }'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          spids: [9290 9303]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.ShFunction
          name_tok: <func_lo2o>
          name: func_lo2o
          body: 
            (BraceGroup
              left: <Id.Lit_LBrace '{'>
              children: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'func_lo2o_result='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'func_lo2o_result='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'func_lo2o_result='>
                          name: func_lo2o_result
                        )
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <Id.VSub_DollarName '$ECHO'>
                                    more_env: []
                                    words: [{($ Id.VSub_DollarName ECHO)} {(DQ ($ Id.VSub_Number 1))}]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <Id.VSub_DollarName '$SED'>
                                    more_env: []
                                    words: [
                                      {($ Id.VSub_DollarName SED)}
                                      {(DQ ($ Id.VSub_DollarName lo2o))}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_Pipe _>]
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
              right: <Id.Lit_RBrace '}'>
            )
        )
        (command.ShFunction
          name_tok: <func_xform>
          name: func_xform
          body: 
            (BraceGroup
              left: <Id.Lit_LBrace '{'>
              children: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'func_xform_result='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'func_xform_result='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'func_xform_result='>
                          name: func_xform_result
                        )
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <Id.VSub_DollarName '$ECHO'>
                                    more_env: []
                                    words: [{($ Id.VSub_DollarName ECHO)} {(DQ ($ Id.VSub_Number 1))}]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <Id.VSub_DollarName '$SED'>
                                    more_env: []
                                    words: [{($ Id.VSub_DollarName SED)} {(SQ <'s|\\.[^.]*$|.lo|'>)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_Pipe _>]
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
              right: <Id.Lit_RBrace '}'>
            )
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShFunction
      name_tok: <func_fatal_configuration>
      name: func_fatal_configuration
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <func__fatal_error>
              more_env: []
              words: [
                {<func__fatal_error>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Number 1>
                    var_name: 1
                    suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
                {
                  (DQ <'See the '> ($ Id.VSub_DollarName PACKAGE) 
                    <' documentation for more information.'>
                  )
                }
                {(DQ <'Fatal configuration error.'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_config>
      name: func_config
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 're_begincf='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 're_begincf='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 're_begincf='> name:re_begincf)
                  op: assign_op.Equal
                  rhs: {(SQ <'^# ### BEGIN LIBTOOL'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 're_endcf='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 're_endcf='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 're_endcf='> name:re_endcf)
                  op: assign_op.Equal
                  rhs: {(SQ <'^# ### END LIBTOOL'>)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$SED'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName SED)}
                {
                  (DQ <'1,/'> ($ Id.VSub_DollarName re_begincf) <' CONFIG/d;/'> 
                    ($ Id.VSub_DollarName re_endcf) <' CONFIG/,'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <d>
                  )
                }
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {(DQ ($ Id.VSub_DollarName progpath))}
                )
              ]
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [tagname]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName taglist)}])
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$SED'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName SED)}
                        {<-n>}
                        {
                          (DQ <'/'> ($ Id.VSub_DollarName re_begincf) <' TAG CONFIG: '> 
                            ($ Id.VSub_DollarName tagname) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'/,/'> 
                            ($ Id.VSub_DollarName re_endcf) <' TAG CONFIG: '> ($ Id.VSub_DollarName tagname) 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'/p'>
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Less '<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: {(DQ ($ Id.VSub_DollarName progpath))}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_QMark '?')}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_features>
      name: func_features
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'host: '> ($ Id.VSub_DollarName host))}]
              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>}
                                {<yes>}
                                {<Id.Lit_Equals '='>}
                                {(DQ ($ Id.VSub_DollarName build_libtool_libs))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'enable shared libraries'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [9602 9615]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(DQ <'disable shared libraries'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              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: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<yes>}
                                {<Id.Lit_Equals '='>}
                                {(DQ ($ Id.VSub_DollarName build_old_libs))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'enable static libraries'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [9638 9651]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(DQ <'disable static libraries'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_QMark '?')}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_enable_tag>
      name: func_enable_tag
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'tagname='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'tagname='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tagname='> name:tagname)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 're_begincf='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 're_begincf='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 're_begincf='> name:re_begincf)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'^# ### BEGIN LIBTOOL TAG CONFIG: '> ($ Id.VSub_DollarName tagname) 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 're_endcf='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 're_endcf='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 're_endcf='> name:re_endcf)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'^# ### END LIBTOOL TAG CONFIG: '> ($ Id.VSub_DollarName tagname) 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                          ch: '$'
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'sed_extractcf='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'sed_extractcf='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sed_extractcf='> name:sed_extractcf)
                  op: assign_op.Equal
                  rhs: 
                    {<'/'> ($ Id.VSub_DollarName re_begincf) <'/'> <Id.Lit_Comma ','> <'/'> 
                      ($ Id.VSub_DollarName re_endcf) <'/p'>
                    }
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName tagname)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <Id.KW_Bang '!'> <-_A-Za-z0-9> 
                          <Id.Lit_Comma ','> <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <func_fatal_error>
                      more_env: []
                      words: [
                        {<func_fatal_error>}
                        {(DQ <'invalid tag name: '> ($ Id.VSub_DollarName tagname))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName tagname)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <CC>
                  pattern: (pat.Words words:[{<CC>}])
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.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.VSub_DollarName '$GREP'>
                                      more_env: []
                                      words: [
                                        {($ Id.VSub_DollarName GREP)}
                                        {(DQ ($ Id.VSub_DollarName re_begincf))}
                                        {(DQ ($ Id.VSub_DollarName progpath))}
                                      ]
                                      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.ShAssignment
                              left: <Id.Lit_VarLike 'taglist='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'taglist='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'taglist='>
                                      name: taglist
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName taglist) <' '> 
                                        ($ Id.VSub_DollarName tagname)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'extractedcf='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'extractedcf='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'extractedcf='>
                                      name: extractedcf
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <Id.VSub_DollarName '$SED'>
                                            more_env: []
                                            words: [
                                              {($ Id.VSub_DollarName SED)}
                                              {<-n>}
                                              {<-e>}
                                              {(DQ ($ Id.VSub_DollarName sed_extractcf))}
                                            ]
                                            redirects: [
                                              (Redir
                                                op: <Id.Redir_Less '<'>
                                                loc: (redir_loc.Fd fd:0)
                                                arg: {(DQ ($ Id.VSub_DollarName progpath))}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [{<eval>} {(DQ ($ Id.VSub_DollarName extractedcf))}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [9804 9823]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <func_error>
                          more_env: []
                          words: [
                            {<func_error>}
                            {(DQ <'ignoring unknown tag '> ($ Id.VSub_DollarName tagname))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_check_version_match>
      name: func_check_version_match
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          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: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {(DQ ($ Id.VSub_DollarName package_revision))}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {(DQ ($ Id.VSub_DollarName macro_revision))}
                              ]
                              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: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {(DQ ($ Id.VSub_DollarName VERSION))}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName macro_version))}
                                      ]
                                      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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-z>}
                                                {(DQ ($ Id.VSub_DollarName macro_version))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <cat>
                                      more_env: []
                                      words: [{<cat>}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                        (Redir
                                          op: <Id.Redir_DLess '<<'>
                                          loc: (redir_loc.Fd fd:0)
                                          arg: 
                                            (redir_param.HereDoc
                                              here_begin: {<_LT_EOF>}
                                              here_end_tok: <Id.Undefined_Tok ''>
                                              stdin_parts: [
                                                ($ Id.VSub_DollarName progname)
                                                <': Version mismatch error.  This is '>
                                                ($ Id.VSub_DollarName PACKAGE)
                                                <' '>
                                                ($ Id.VSub_DollarName VERSION)
                                                <', but the\n'>
                                                ($ Id.VSub_DollarName progname)
                                                <
': definition of this LT_INIT comes from an older release.\n'
                                                >
                                                ($ Id.VSub_DollarName progname)
                                                <
': You should recreate aclocal.m4 with macros from '
                                                >
                                                ($ Id.VSub_DollarName PACKAGE)
                                                <' '>
                                                ($ Id.VSub_DollarName VERSION)
                                                <'\n'>
                                                ($ Id.VSub_DollarName progname)
                                                <': and run autoconf again.\n'>
                                              ]
                                            )
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  spids: [9961 9972]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <cat>
                                  more_env: []
                                  words: [{<cat>}]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_GreatAnd '>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<2>}
                                    )
                                    (Redir
                                      op: <Id.Redir_DLess '<<'>
                                      loc: (redir_loc.Fd fd:0)
                                      arg: 
                                        (redir_param.HereDoc
                                          here_begin: {<_LT_EOF>}
                                          here_end_tok: <Id.Undefined_Tok ''>
                                          stdin_parts: [
                                            ($ Id.VSub_DollarName progname)
                                            <': Version mismatch error.  This is '>
                                            ($ Id.VSub_DollarName PACKAGE)
                                            <' '>
                                            ($ Id.VSub_DollarName VERSION)
                                            <', but the\n'>
                                            ($ Id.VSub_DollarName progname)
                                            <': definition of this LT_INIT comes from '>
                                            ($ Id.VSub_DollarName PACKAGE)
                                            <' '>
                                            ($ Id.VSub_DollarName macro_version)
                                            <'.\n'>
                                            ($ Id.VSub_DollarName progname)
                                            <': You should recreate aclocal.m4 with macros from '>
                                            ($ Id.VSub_DollarName PACKAGE)
                                            <' '>
                                            ($ Id.VSub_DollarName VERSION)
                                            <'\n'>
                                            ($ Id.VSub_DollarName progname)
                                            <': and run autoconf again.\n'>
                                          ]
                                        )
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          spids: [9942 9958]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <cat>
                          more_env: []
                          words: [{<cat>}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_GreatAnd '>&'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<2>}
                            )
                            (Redir
                              op: <Id.Redir_DLess '<<'>
                              loc: (redir_loc.Fd fd:0)
                              arg: 
                                (redir_param.HereDoc
                                  here_begin: {<_LT_EOF>}
                                  here_end_tok: <Id.Undefined_Tok ''>
                                  stdin_parts: [
                                    ($ Id.VSub_DollarName progname)
                                    <': Version mismatch error.  This is '>
                                    ($ Id.VSub_DollarName PACKAGE)
                                    <' '>
                                    ($ Id.VSub_DollarName VERSION)
                                    <', revision '>
                                    ($ Id.VSub_DollarName package_revision)
                                    <',\n'>
                                    ($ Id.VSub_DollarName progname)
                                    <': but the definition of this LT_INIT comes from revision '>
                                    ($ Id.VSub_DollarName macro_revision)
                                    <'.\n'>
                                    ($ Id.VSub_DollarName progname)
                                    <': You should recreate aclocal.m4 with macros from revision '>
                                    ($ Id.VSub_DollarName package_revision)
                                    <'\n'>
                                    ($ Id.VSub_DollarName progname)
                                    <': of '>
                                    ($ Id.VSub_DollarName PACKAGE)
                                    <' '>
                                    ($ Id.VSub_DollarName VERSION)
                                    <' and run autoconf again.\n'>
                                  ]
                                )
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {($ Id.VSub_DollarName EXIT_MISMATCH)}
                    )
                  ]
                  spids: [9923 9939]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <libtool_options_prep>
      name: libtool_options_prep
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_mode'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_mode)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'opt_config='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'opt_config='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opt_config='> name:opt_config)
                  op: assign_op.Equal
                  rhs: {<false>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'opt_dlopen='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'opt_dlopen='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opt_dlopen='> name:opt_dlopen)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'opt_dry_run='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'opt_dry_run='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opt_dry_run='> name:opt_dry_run)
                  op: assign_op.Equal
                  rhs: {<false>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'opt_help='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'opt_help='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opt_help='> name:opt_help)
                  op: assign_op.Equal
                  rhs: {<false>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'opt_mode='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'opt_mode='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opt_mode='> name:opt_mode)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'opt_preserve_dup_deps='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'opt_preserve_dup_deps='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'opt_preserve_dup_deps='>
                      name: opt_preserve_dup_deps
                    )
                  op: assign_op.Equal
                  rhs: {<false>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'opt_quiet='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'opt_quiet='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opt_quiet='> name:opt_quiet)
                  op: assign_op.Equal
                  rhs: {<false>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'nonopt='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'nonopt='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nonopt='> name:nonopt)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'preserve_args='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'preserve_args='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'preserve_args='> name:preserve_args)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <clean>
                  pattern: (pat.Words words:[{<clean>} {<clea>} {<cle>} {<cl>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <shift>
                          more_env: []
                          words: [{<shift>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <set>
                          more_env: []
                          words: [
                            {<set>}
                            {<dummy>}
                            {<--mode>}
                            {<clean>}
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Number 1>
                                var_name: 1
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VTest_Plus _>
                                    arg_word: {(DQ ($ Id.VSub_At '@'))}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <compile>
                  pattern: 
                    (pat.Words
                      words: [{<compile>} {<compil>} {<compi>} {<comp>} {<com>} {<co>} {<c>}]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <shift>
                          more_env: []
                          words: [{<shift>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <set>
                          more_env: []
                          words: [
                            {<set>}
                            {<dummy>}
                            {<--mode>}
                            {<compile>}
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Number 1>
                                var_name: 1
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VTest_Plus _>
                                    arg_word: {(DQ ($ Id.VSub_At '@'))}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <execute>
                  pattern: 
                    (pat.Words
                      words: [{<execute>} {<execut>} {<execu>} {<exec>} {<exe>} {<ex>} {<e>}]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <shift>
                          more_env: []
                          words: [{<shift>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <set>
                          more_env: []
                          words: [
                            {<set>}
                            {<dummy>}
                            {<--mode>}
                            {<execute>}
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Number 1>
                                var_name: 1
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VTest_Plus _>
                                    arg_word: {(DQ ($ Id.VSub_At '@'))}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <finish>
                  pattern: 
                    (pat.Words
                      words: [{<finish>} {<finis>} {<fini>} {<fin>} {<Id.KW_Fi fi>} {<f>}]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <shift>
                          more_env: []
                          words: [{<shift>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <set>
                          more_env: []
                          words: [
                            {<set>}
                            {<dummy>}
                            {<--mode>}
                            {<finish>}
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Number 1>
                                var_name: 1
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VTest_Plus _>
                                    arg_word: {(DQ ($ Id.VSub_At '@'))}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <install>
                  pattern: 
                    (pat.Words
                      words: [{<install>} {<instal>} {<insta>} {<inst>} {<ins>} {<Id.KW_In in>} {<i>}]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <shift>
                          more_env: []
                          words: [{<shift>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <set>
                          more_env: []
                          words: [
                            {<set>}
                            {<dummy>}
                            {<--mode>}
                            {<install>}
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Number 1>
                                var_name: 1
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VTest_Plus _>
                                    arg_word: {(DQ ($ Id.VSub_At '@'))}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <link>
                  pattern: (pat.Words words:[{<link>} {<lin>} {<li>} {<l>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <shift>
                          more_env: []
                          words: [{<shift>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <set>
                          more_env: []
                          words: [
                            {<set>}
                            {<dummy>}
                            {<--mode>}
                            {<link>}
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Number 1>
                                var_name: 1
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VTest_Plus _>
                                    arg_word: {(DQ ($ Id.VSub_At '@'))}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <uninstall>
                  pattern: 
                    (pat.Words
                      words: [
                        {<uninstall>}
                        {<uninstal>}
                        {<uninsta>}
                        {<uninst>}
                        {<unins>}
                        {<unin>}
                        {<uni>}
                        {<un>}
                        {<u>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <shift>
                          more_env: []
                          words: [{<shift>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <set>
                          more_env: []
                          words: [
                            {<set>}
                            {<dummy>}
                            {<--mode>}
                            {<uninstall>}
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Number 1>
                                var_name: 1
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VTest_Plus _>
                                    arg_word: {(DQ ($ Id.VSub_At '@'))}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <func_quote_for_eval>
              more_env: []
              words: [
                {<func_quote_for_eval>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Number 1>
                    var_name: 1
                    suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'libtool_options_prep_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'libtool_options_prep_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'libtool_options_prep_result='>
                      name: libtool_options_prep_result
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_quote_for_eval_result)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <func_add_hook>
      more_env: []
      words: [{<func_add_hook>} {<func_options_prep>} {<libtool_options_prep>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <libtool_parse_options>
      name: libtool_parse_options
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {($ Id.VSub_Pound '#')} {<-gt>} {<0>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_G_opt='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_G_opt='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_G_opt='> name:_G_opt)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName _G_opt)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <--dry-run>
                          pattern: (pat.Words words:[{<--dry-run>} {<--dryrun>} {<-n>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'opt_dry_run='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'opt_dry_run='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'opt_dry_run='>
                                      name: opt_dry_run
                                    )
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Colon ':'>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--config>
                          pattern: (pat.Words words:[{<--config>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_config>
                              more_env: []
                              words: [{<func_config>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--dlopen>
                          pattern: (pat.Words words:[{<--dlopen>} {<-dlopen>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'opt_dlopen='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'opt_dlopen='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'opt_dlopen='>
                                      name: opt_dlopen
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          left: <Id.Left_DollarBrace '${'>
                                          token: <Id.VSub_Name opt_dlopen>
                                          var_name: opt_dlopen
                                          suffix_op: 
                                            (suffix_op.Unary
                                              op: <Id.VTest_Plus _>
                                              arg_word: {($ Id.VSub_DollarName opt_dlopen) <'\n'>}
                                            )
                                          right: <Id.Right_DollarBrace '}'>
                                        ) ($ Id.VSub_Number 1)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--preserve-dup-deps>
                          pattern: (pat.Words words:[{<--preserve-dup-deps>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'opt_preserve_dup_deps='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'opt_preserve_dup_deps='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'opt_preserve_dup_deps='>
                                      name: opt_preserve_dup_deps
                                    )
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Colon ':'>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--features>
                          pattern: (pat.Words words:[{<--features>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_features>
                              more_env: []
                              words: [{<func_features>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--finish>
                          pattern: (pat.Words words:[{<--finish>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <set>
                                  more_env: []
                                  words: [
                                    {<set>}
                                    {<dummy>}
                                    {<--mode>}
                                    {<finish>}
                                    {
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Number 1>
                                        var_name: 1
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VTest_Plus _>
                                            arg_word: {(DQ ($ Id.VSub_At '@'))}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--help>
                          pattern: (pat.Words words:[{<--help>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'opt_help='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'opt_help='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'opt_help='>
                                      name: opt_help
                                    )
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Colon ':'>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--help-all>
                          pattern: (pat.Words words:[{<--help-all>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'opt_help='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'opt_help='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'opt_help='>
                                      name: opt_help
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <': help-all'>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--mode>
                          pattern: (pat.Words words:[{<--mode>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {($ Id.VSub_Pound '#')} {<Id.Lit_Equals '='>} {<0>}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_missing_arg>
                                  more_env: []
                                  words: [{<func_missing_arg>} {($ Id.VSub_DollarName _G_opt)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Break break>
                                )
                              ]
                              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'opt_mode='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'opt_mode='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'opt_mode='>
                                      name: opt_mode
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <clean>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<clean>}
                                        {<compile>}
                                        {<execute>}
                                        {<finish>}
                                        {<install>}
                                        {<link>}
                                        {<relink>}
                                        {<uninstall>}
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_error>
                                      more_env: []
                                      words: [
                                        {<func_error>}
                                        {(DQ <'invalid argument for '> ($ Id.VSub_DollarName _G_opt))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'exit_cmd='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'exit_cmd='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'exit_cmd='>
                                              name: exit_cmd
                                            )
                                          op: assign_op.Equal
                                          rhs: {<Id.ControlFlow_Exit exit>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Break break>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--no-silent>
                          pattern: (pat.Words words:[{<--no-silent>} {<--no-quiet>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'opt_quiet='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'opt_quiet='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'opt_quiet='>
                                      name: opt_quiet
                                    )
                                  op: assign_op.Equal
                                  rhs: {<false>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<preserve_args>}
                                {(DQ <' '> ($ Id.VSub_DollarName _G_opt))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--no-warnings>
                          pattern: 
                            (pat.Words
                              words: [{<--no-warnings>} {<--no-warning>} {<--no-warn>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'opt_warning='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'opt_warning='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'opt_warning='>
                                      name: opt_warning
                                    )
                                  op: assign_op.Equal
                                  rhs: {<false>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<preserve_args>}
                                {(DQ <' '> ($ Id.VSub_DollarName _G_opt))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--no-verbose>
                          pattern: (pat.Words words:[{<--no-verbose>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'opt_verbose='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'opt_verbose='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'opt_verbose='>
                                      name: opt_verbose
                                    )
                                  op: assign_op.Equal
                                  rhs: {<false>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<preserve_args>}
                                {(DQ <' '> ($ Id.VSub_DollarName _G_opt))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--silent>
                          pattern: (pat.Words words:[{<--silent>} {<--quiet>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'opt_quiet='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'opt_quiet='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'opt_quiet='>
                                      name: opt_quiet
                                    )
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Colon ':'>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'opt_verbose='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'opt_verbose='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'opt_verbose='>
                                      name: opt_verbose
                                    )
                                  op: assign_op.Equal
                                  rhs: {<false>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<preserve_args>}
                                {(DQ <' '> ($ Id.VSub_DollarName _G_opt))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--tag>
                          pattern: (pat.Words words:[{<--tag>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {($ Id.VSub_Pound '#')} {<Id.Lit_Equals '='>} {<0>}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_missing_arg>
                                  more_env: []
                                  words: [{<func_missing_arg>} {($ Id.VSub_DollarName _G_opt)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Break break>
                                )
                              ]
                              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'opt_tag='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'opt_tag='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'opt_tag='>
                                      name: opt_tag
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<preserve_args>}
                                {(DQ <' '> ($ Id.VSub_DollarName _G_opt) <' '> ($ Id.VSub_Number 1))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <func_enable_tag>
                              more_env: []
                              words: [{<func_enable_tag>} {(DQ ($ Id.VSub_Number 1))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <--verbose>
                          pattern: (pat.Words words:[{<--verbose>} {<-v>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'opt_quiet='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'opt_quiet='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'opt_quiet='>
                                      name: opt_quiet
                                    )
                                  op: assign_op.Equal
                                  rhs: {<false>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'opt_verbose='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'opt_verbose='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'opt_verbose='>
                                      name: opt_verbose
                                    )
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Colon ':'>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<preserve_args>}
                                {(DQ <' '> ($ Id.VSub_DollarName _G_opt))}
                              ]
                              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.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <set>
                                  more_env: []
                                  words: [
                                    {<set>}
                                    {<dummy>}
                                    {(DQ ($ Id.VSub_DollarName _G_opt))}
                                    {
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Number 1>
                                        var_name: 1
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VTest_Plus _>
                                            arg_word: {(DQ ($ Id.VSub_At '@'))}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <shift>
                                  more_env: []
                                  words: [{<shift>}]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <func_quote_for_eval>
              more_env: []
              words: [
                {<func_quote_for_eval>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Number 1>
                    var_name: 1
                    suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'libtool_parse_options_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'libtool_parse_options_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'libtool_parse_options_result='>
                      name: libtool_parse_options_result
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_quote_for_eval_result)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <func_add_hook>
      more_env: []
      words: [{<func_add_hook>} {<func_parse_options>} {<libtool_parse_options>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <libtool_validate_options>
      name: libtool_validate_options
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          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: <test>
                              more_env: []
                              words: [{<test>} {<0>} {<-lt>} {($ Id.VSub_Pound '#')}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'nonopt='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'nonopt='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nonopt='> name:nonopt)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [11016 11027]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {<Id.Lit_Colon ':'>}
                    {<Id.Lit_Equals '='>}
                    {(DQ ($ Id.VSub_DollarName debug_cmd))}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <func_append>
                  more_env: []
                  words: [{<func_append>} {<preserve_args>} {(DQ <' --debug'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}
                        {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}
                        {<Id.Lit_Star '*'> <pw32> <Id.Lit_Star '*'>}
                        {<Id.Lit_Star '*'> <cegcc> <Id.Lit_Star '*'>}
                        {<Id.Lit_Star '*'> <solaris2> <Id.Lit_Star '*'>}
                        {<Id.Lit_Star '*'> <os2> <Id.Lit_Star '*'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'opt_duplicate_compiler_generated_deps='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'opt_duplicate_compiler_generated_deps='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'opt_duplicate_compiler_generated_deps='>
                              name: opt_duplicate_compiler_generated_deps
                            )
                          op: assign_op.Equal
                          rhs: {<Id.Lit_Colon ':'>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'opt_duplicate_compiler_generated_deps='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'opt_duplicate_compiler_generated_deps='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'opt_duplicate_compiler_generated_deps='>
                              name: opt_duplicate_compiler_generated_deps
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName opt_preserve_dup_deps)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$opt_help'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName opt_help)}]
                  redirects: []
                  do_fork: T
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Simple
                      blame_tok: <func_check_version_match>
                      more_env: []
                      words: [{<func_check_version_match>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<yes>}
                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                            {(DQ ($ Id.VSub_DollarName build_libtool_libs))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<yes>}
                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                            {(DQ ($ Id.VSub_DollarName build_old_libs))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <func_fatal_configuration>
                          more_env: []
                          words: [
                            {<func_fatal_configuration>}
                            {(DQ <'not configured to build any kind of library'>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                    )
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {<Id.Lit_VarLike 'std_shrext='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) ($ Id.VSub_DollarName shrext_cmds) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                        }
                      ]
                      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.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-n>}
                                            {(DQ ($ Id.VSub_DollarName opt_dlopen))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<execute>}
                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_DollarName opt_mode))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <func_error>
                              more_env: []
                              words: [{<func_error>} {(DQ <'unrecognized option \'-dlopen\''>)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$ECHO'>
                              more_env: []
                              words: [{($ Id.VSub_DollarName ECHO)} {(DQ ($ Id.VSub_DollarName help))}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '1>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName EXIT_FAILURE)}
                            )
                          ]
                          spids: [11214 11238]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'generic_help='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'generic_help='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'generic_help='>
                              name: generic_help
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName help)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'help='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'help='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'help='> name:help)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'Try \''> ($ Id.VSub_DollarName progname) <' --help --mode='> 
                                ($ Id.VSub_DollarName opt_mode) <'\' for more information.'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <func_quote_for_eval>
              more_env: []
              words: [
                {<func_quote_for_eval>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Number 1>
                    var_name: 1
                    suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'libtool_validate_options_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'libtool_validate_options_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'libtool_validate_options_result='>
                      name: libtool_validate_options_result
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_quote_for_eval_result)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <func_add_hook>
      more_env: []
      words: [{<func_add_hook>} {<func_validate_options>} {<libtool_validate_options>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <func_options>
      more_env: []
      words: [
        {<func_options>}
        {
          (BracedVarSub
            left: <Id.Left_DollarBrace '${'>
            token: <Id.VSub_Number 1>
            var_name: 1
            suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
            right: <Id.Right_DollarBrace '}'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [{<eval>} {<set>} {<dummy>} {(DQ ($ Id.VSub_DollarName func_options_result))}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <shift>
          more_env: []
          words: [{<shift>}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'magic='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'magic='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'magic='> name:magic)
          op: assign_op.Equal
          rhs: {(SQ <'%%%MAGIC variable%%%'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'magic_exe='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'magic_exe='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'magic_exe='> name:magic_exe)
          op: assign_op.Equal
          rhs: {(SQ <'%%%MAGIC EXE variable%%%'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'extracted_archives='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'extracted_archives='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'extracted_archives='> name:extracted_archives)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'extracted_serial='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'extracted_serial='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'extracted_serial='> name:extracted_serial)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'exec_cmd='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'exec_cmd='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exec_cmd='> name:exec_cmd)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <func_fallback_echo>
      name: func_fallback_echo
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [{<eval>} {(SQ <'cat <<_LTECHO_EOF\n'> <'$1\n'> <_LTECHO_EOF>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_generated_by_libtool_p>
      name: func_generated_by_libtool_p
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$GREP'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName GREP)}
                {(DQ <'^# Generated by .*'> ($ Id.VSub_DollarName PACKAGE))}
              ]
              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
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_lalib_p>
      name: func_lalib_p
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-f>} {(DQ ($ Id.VSub_Number 1))}]
                  redirects: []
                  do_fork: T
                )
                (command.Pipeline
                  children: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$SED'>
                      more_env: []
                      words: [{($ Id.VSub_DollarName SED)} {<-e>} {<4q>} {(DQ ($ Id.VSub_Number 1))}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '2>'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <func_generated_by_libtool_p>
                      more_env: []
                      words: [{<func_generated_by_libtool_p>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_Pipe _>]
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_lalib_unsafe_p>
      name: func_lalib_unsafe_p
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'lalib_p='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'lalib_p='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lalib_p='> name:lalib_p)
                  op: assign_op.Equal
                  rhs: {<no>}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-f>} {(DQ ($ Id.VSub_Number 1))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-r>} {(DQ ($ Id.VSub_Number 1))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <exec>
                                  more_env: []
                                  words: [{<exec>}]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_LessAnd '5<&'>
                                      loc: (redir_loc.Fd fd:5)
                                      arg: {<0>}
                                    )
                                    (Redir
                                      op: <Id.Redir_Less '<'>
                                      loc: (redir_loc.Fd fd:0)
                                      arg: {(DQ ($ Id.VSub_Number 1))}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [lalib_p_l]
                      iterable: (for_iter.Words words:[{<1>} {<2>} {<3>} {<4>}])
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Simple
                              blame_tok: <read>
                              more_env: []
                              words: [{<read>} {<lalib_p_line>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName lalib_p_line)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_EscapedChar '\\#'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\#'>
                                            ch: '#'
                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '> ch:' ') <Generated> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\ '>
                                            ch: ' '
                                          ) <by> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '> ch:' ') <Id.Lit_Star '*'> 
                                          ($ Id.VSub_DollarName PACKAGE) <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'lalib_p='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'lalib_p='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'lalib_p='>
                                                  name: lalib_p
                                                )
                                              op: assign_op.Equal
                                              rhs: {<yes>}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Break break>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <exec>
                      more_env: []
                      words: [{<exec>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_LessAnd '0<&'>
                          loc: (redir_loc.Fd fd:0)
                          arg: {<5>}
                        )
                        (Redir
                          op: <Id.Redir_LessAnd '5<&'>
                          loc: (redir_loc.Fd fd:5)
                          arg: {<->}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [11532 11565]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <test>
              more_env: []
              words: [{<test>} {<yes>} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName lalib_p))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_ltwrapper_script_p>
      name: func_ltwrapper_script_p
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-f>} {(DQ ($ Id.VSub_Number 1))}]
                  redirects: []
                  do_fork: T
                )
                (command.Pipeline
                  children: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$lt_truncate_bin'>
                      more_env: []
                      words: [{($ Id.VSub_DollarName lt_truncate_bin)}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Less '<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: {(DQ ($ Id.VSub_Number 1))}
                        )
                        (Redir
                          op: <Id.Redir_Great '2>'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <func_generated_by_libtool_p>
                      more_env: []
                      words: [{<func_generated_by_libtool_p>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_Pipe _>]
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_ltwrapper_executable_p>
      name: func_ltwrapper_executable_p
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_ltwrapper_exec_suffix='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_ltwrapper_exec_suffix='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_ltwrapper_exec_suffix='>
                      name: func_ltwrapper_exec_suffix
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.exe>}])
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_ltwrapper_exec_suffix='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_ltwrapper_exec_suffix='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_ltwrapper_exec_suffix='>
                              name: func_ltwrapper_exec_suffix
                            )
                          op: assign_op.Equal
                          rhs: {<.exe>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$GREP'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName GREP)}
                {(DQ ($ Id.VSub_DollarName magic_exe))}
                {(DQ ($ Id.VSub_Number 1) ($ Id.VSub_DollarName func_ltwrapper_exec_suffix))}
              ]
              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
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_ltwrapper_scriptname>
      name: func_ltwrapper_scriptname
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <func_dirname_and_basename>
              more_env: []
              words: [{<func_dirname_and_basename>} {(DQ ($ Id.VSub_Number 1))} {(DQ )} {(DQ <.>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <func_stripname>
              more_env: []
              words: [
                {<func_stripname>}
                {(SQ )}
                {(SQ <.exe>)}
                {(DQ ($ Id.VSub_DollarName func_basename_result))}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_ltwrapper_scriptname_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_ltwrapper_scriptname_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_ltwrapper_scriptname_result='>
                      name: func_ltwrapper_scriptname_result
                    )
                  op: assign_op.Equal
                  rhs: 
                    {($ Id.VSub_DollarName func_dirname_result) <'/'> ($ Id.VSub_DollarName objdir) 
                      <'/'> (${ Id.VSub_Name func_stripname_result) <_ltshwrapper>
                    }
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_ltwrapper_p>
      name: func_ltwrapper_p
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <func_ltwrapper_script_p>
                  more_env: []
                  words: [{<func_ltwrapper_script_p>} {(DQ ($ Id.VSub_Number 1))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <func_ltwrapper_executable_p>
                  more_env: []
                  words: [{<func_ltwrapper_executable_p>} {(DQ ($ Id.VSub_Number 1))}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_execute_cmds>
      name: func_execute_cmds
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'save_ifs='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'save_ifs='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'save_ifs='> name:save_ifs)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName IFS)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {(SQ <'~'>)}
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [cmd]
              iterable: (for_iter.Words words:[{($ Id.VSub_Number 1)}])
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'IFS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'IFS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName sp) ($ Id.VSub_DollarName nl)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {<Id.Lit_VarLike 'cmd='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) ($ Id.VSub_DollarName cmd) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'IFS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'IFS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName save_ifs)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_show_eval>
                      more_env: []
                      words: [
                        {<func_show_eval>}
                        {(DQ ($ Id.VSub_DollarName cmd))}
                        {
                          (DQ 
                            (BracedVarSub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Number 2>
                              var_name: 2
                              suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<':'>})
                              right: <Id.Right_DollarBrace '}'>
                            )
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName save_ifs)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_source>
      name: func_source
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> <'/'> <Id.Lit_Star '*'>}
                        {<Id.Lit_Star '*'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\\\'>
                            ch: '\\'
                          ) <Id.Lit_Star '*'>
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <.>
                      more_env: []
                      words: [{<.>} {(DQ ($ Id.VSub_Number 1))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <.>
                      more_env: []
                      words: [{<.>} {(DQ <'./'> ($ Id.VSub_Number 1))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_resolve_sysroot>
      name: func_resolve_sysroot
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_resolve_sysroot_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_resolve_sysroot_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_resolve_sysroot_result='>
                      name: func_resolve_sysroot_result
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName func_resolve_sysroot_result)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Equals '='>
                  pattern: (pat.Words words:[{<Id.Lit_Equals '='> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <func_stripname>
                      more_env: []
                      words: [
                        {<func_stripname>}
                        {(SQ <'='>)}
                        {(SQ )}
                        {(DQ ($ Id.VSub_DollarName func_resolve_sysroot_result))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_resolve_sysroot_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_resolve_sysroot_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_resolve_sysroot_result='>
                              name: func_resolve_sysroot_result
                            )
                          op: assign_op.Equal
                          rhs: 
                            {($ Id.VSub_DollarName lt_sysroot) 
                              ($ Id.VSub_DollarName func_stripname_result)
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_replace_sysroot>
      name: func_replace_sysroot
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: 
                (case_arg.Word
                  w: {($ Id.VSub_DollarName lt_sysroot) <Id.Lit_Colon ':'> ($ Id.VSub_Number 1)}
                )
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_QMark '?'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_QMark '?'> <Id.Lit_Star '*'> <Id.Lit_Colon ':'> 
                          (DQ ($ Id.VSub_DollarName lt_sysroot)) <Id.Lit_Star '*'>
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <func_stripname>
                      more_env: []
                      words: [
                        {<func_stripname>}
                        {(DQ ($ Id.VSub_DollarName lt_sysroot))}
                        {(SQ )}
                        {(DQ ($ Id.VSub_Number 1))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_replace_sysroot_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_replace_sysroot_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_replace_sysroot_result='>
                              name: func_replace_sysroot_result
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <'='>) ($ Id.VSub_DollarName func_stripname_result)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_replace_sysroot_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_replace_sysroot_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_replace_sysroot_result='>
                              name: func_replace_sysroot_result
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_infer_tag>
      name: func_infer_tag
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              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.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName available_tags))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName tagname))}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'CC_quoted='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'CC_quoted='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CC_quoted='> name:CC_quoted)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [arg]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName CC)}])
                      semi_tok: <Id.Op_Semi _>
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Simple
                              blame_tok: <func_append_quoted>
                              more_env: []
                              words: [
                                {<func_append_quoted>}
                                {<CC_quoted>}
                                {(DQ ($ Id.VSub_DollarName arg))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'CC_expanded='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'CC_expanded='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'CC_expanded='>
                              name: CC_expanded
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <func_echo_all>
                                    more_env: []
                                    words: [{<func_echo_all>} {($ Id.VSub_DollarName CC)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'CC_quoted_expanded='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'CC_quoted_expanded='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'CC_quoted_expanded='>
                              name: CC_quoted_expanded
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <func_echo_all>
                                    more_env: []
                                    words: [{<func_echo_all>} {($ Id.VSub_DollarName CC_quoted)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_At '@')})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_DoubleQuote '"'>
                          pattern: 
                            (pat.Words
                              words: [
                                {(DQ <' '> ($ Id.VSub_DollarName CC) <' '>) <Id.Lit_Star '*'>}
                                {(DQ ($ Id.VSub_DollarName CC) <' '>) <Id.Lit_Star '*'>}
                                {(DQ <' '> ($ Id.VSub_DollarName CC_expanded) <' '>) 
                                  <Id.Lit_Star '*'>
                                }
                                {(DQ ($ Id.VSub_DollarName CC_expanded) <' '>) <Id.Lit_Star '*'>}
                                {(DQ <' '> ($ Id.VSub_DollarName CC_quoted)) <Id.Lit_Star '*'>}
                                {(DQ ($ Id.VSub_DollarName CC_quoted) <' '>) <Id.Lit_Star '*'>}
                                {(DQ <' '> ($ Id.VSub_DollarName CC_quoted_expanded) <' '>) 
                                  <Id.Lit_Star '*'>
                                }
                                {(DQ ($ Id.VSub_DollarName CC_quoted_expanded) <' '>) 
                                  <Id.Lit_Star '*'>
                                }
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [z]
                              iterable: 
                                (for_iter.Words
                                  words: [{($ Id.VSub_DollarName available_tags)}]
                                )
                              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.VSub_DollarName '$GREP'>
                                                      more_env: []
                                                      words: [
                                                        {($ Id.VSub_DollarName GREP)}
                                                        {
                                                          (DQ <'^# ### BEGIN LIBTOOL TAG CONFIG: '> 
                                                            ($ Id.VSub_DollarName z) <Id.Lit_Dollar '$'>
                                                          )
                                                        }
                                                      ]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_Less '<'>
                                                          loc: (redir_loc.Fd fd:0)
                                                          arg: {(DQ ($ Id.VSub_DollarName progpath))}
                                                        )
                                                        (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.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {
                                                  (DQ 
                                                    (CommandSub
                                                      left_token: <Id.Left_Backtick '`'>
                                                      child: 
                                                        (command.Simple
                                                          blame_tok: <Id.VSub_DollarName '$SED'>
                                                          more_env: []
                                                          words: [
                                                            {($ Id.VSub_DollarName SED)}
                                                            {<-n>}
                                                            {<-e>}
                                                            {
                                                              (SQ 
                                                                <
'/^# ### BEGIN LIBTOOL TAG CONFIG: '
                                                                >
                                                              ) ($ Id.VSub_DollarName z) (SQ <'$/,/^# ### END LIBTOOL TAG CONFIG: '>) ($ Id.VSub_DollarName z) 
                                                              (SQ <'$/p'>)
                                                            }
                                                          ]
                                                          redirects: [
                                                            (Redir
                                                              op: <Id.Redir_Less '<'>
                                                              loc: (redir_loc.Fd fd:0)
                                                              arg: {($ Id.VSub_DollarName progpath)}
                                                            )
                                                          ]
                                                          do_fork: T
                                                        )
                                                      right: <Id.Backtick_Right '`'>
                                                    )
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'CC_quoted='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'CC_quoted='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'CC_quoted='>
                                                      name: CC_quoted
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [arg]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName CC)}]
                                                )
                                              semi_tok: <Id.Op_Semi _>
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <func_append_quoted>
                                                      more_env: []
                                                      words: [
                                                        {<func_append_quoted>}
                                                        {<CC_quoted>}
                                                        {(DQ ($ Id.VSub_DollarName arg))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'CC_expanded='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'CC_expanded='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'CC_expanded='>
                                                      name: CC_expanded
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <func_echo_all>
                                                            more_env: []
                                                            words: [
                                                              {<func_echo_all>}
                                                              {($ Id.VSub_DollarName CC)}
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'CC_quoted_expanded='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'CC_quoted_expanded='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'CC_quoted_expanded='>
                                                      name: CC_quoted_expanded
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <func_echo_all>
                                                            more_env: []
                                                            words: [
                                                              {<func_echo_all>}
                                                              {($ Id.VSub_DollarName CC_quoted)}
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {(DQ ($ Id.VSub_At '@') <' '>)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_DoubleQuote '"'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {(DQ <' '> ($ Id.VSub_DollarName CC) <' '>) 
                                                          <Id.Lit_Star '*'>
                                                        }
                                                        {(DQ ($ Id.VSub_DollarName CC) <' '>) 
                                                          <Id.Lit_Star '*'>
                                                        }
                                                        {
                                                          (DQ <' '> ($ Id.VSub_DollarName CC_expanded) 
                                                            <' '>
                                                          ) <Id.Lit_Star '*'>
                                                        }
                                                        {
                                                          (DQ ($ Id.VSub_DollarName CC_expanded) <' '>) <Id.Lit_Star '*'>
                                                        }
                                                        {(DQ <' '> ($ Id.VSub_DollarName CC_quoted)) 
                                                          <Id.Lit_Star '*'>
                                                        }
                                                        {(DQ ($ Id.VSub_DollarName CC_quoted) <' '>) 
                                                          <Id.Lit_Star '*'>
                                                        }
                                                        {
                                                          (DQ <' '> 
                                                            ($ Id.VSub_DollarName CC_quoted_expanded) <' '>
                                                          ) <Id.Lit_Star '*'>
                                                        }
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName CC_quoted_expanded) <' '>
                                                          ) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'tagname='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'tagname='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'tagname='>
                                                              name: tagname
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName z)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          spids: [12381 12402]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-z>}
                                                {(DQ ($ Id.VSub_DollarName tagname))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_echo>
                                      more_env: []
                                      words: [
                                        {<func_echo>}
                                        {(DQ <'unable to infer tagged configuration'>)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_fatal_error>
                                      more_env: []
                                      words: [
                                        {<func_fatal_error>}
                                        {(DQ <'specify a tag with \'--tag\''>)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [12613 12624]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  spids: [12200 12221]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_write_libtool_object>
      name: func_write_libtool_object
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'write_libobj='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'write_libobj='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'write_libobj='> name:write_libobj)
                  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: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<yes>}
                                {<Id.Lit_Equals '='>}
                                {(DQ ($ Id.VSub_DollarName build_libtool_libs))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'write_lobj='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'write_lobj='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'write_lobj='> name:write_lobj)
                          op: assign_op.Equal
                          rhs: 
                            {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                              ($ Id.VSub_Number 2) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'')
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [12684 12697]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'write_lobj='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'write_lobj='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'write_lobj='> name:write_lobj)
                      op: assign_op.Equal
                      rhs: {<none>}
                    )
                  ]
                  redirects: []
                )
              ]
              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: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<yes>}
                                {<Id.Lit_Equals '='>}
                                {(DQ ($ Id.VSub_DollarName build_old_libs))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'write_oldobj='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'write_oldobj='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'write_oldobj='>
                              name: write_oldobj
                            )
                          op: assign_op.Equal
                          rhs: 
                            {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                              ($ Id.VSub_Number 3) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'')
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [12717 12730]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'write_oldobj='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'write_oldobj='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'write_oldobj='> name:write_oldobj)
                      op: assign_op.Equal
                      rhs: {<none>}
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName opt_dry_run)}]
                  redirects: []
                  do_fork: T
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Simple
                      blame_tok: <cat>
                      more_env: []
                      words: [{<cat>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(${ Id.VSub_Name write_libobj) <T>}
                        )
                        (Redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<EOF>}
                              here_end_tok: <Id.Undefined_Tok ''>
                              stdin_parts: [
                                <'# '>
                                ($ Id.VSub_DollarName write_libobj)
                                <' - a libtool object file\n'>
                                <'# Generated by '>
                                ($ Id.VSub_DollarName PROGRAM)
                                <' (GNU '>
                                ($ Id.VSub_DollarName PACKAGE)
                                <') '>
                                ($ Id.VSub_DollarName VERSION)
                                <'\n'>
                                <'#\n'>
                                <'# Please DO NOT delete this file!\n'>
                                <'# It is necessary for linking the library.\n'>
                                <'\n'>
                                <'# Name of the PIC object.\n'>
                                <'pic_object='>
                                ($ Id.VSub_DollarName write_lobj)
                                <'\n'>
                                <'\n'>
                                <'# Name of the non-PIC object\n'>
                                <'non_pic_object='>
                                ($ Id.VSub_DollarName write_oldobj)
                                <'\n'>
                                <'\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$MV'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName MV)}
                        {(DQ (${ Id.VSub_Name write_libobj) <T>)}
                        {(DQ ($ Id.VSub_DollarName write_libobj))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_convert_core_file_wine_to_w32>
      name: func_convert_core_file_wine_to_w32
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_convert_core_file_wine_to_w32_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_convert_core_file_wine_to_w32_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_convert_core_file_wine_to_w32_result='>
                      name: func_convert_core_file_wine_to_w32_result
                    )
                  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: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_Number 1))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_convert_core_file_wine_to_w32_tmp='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_convert_core_file_wine_to_w32_tmp='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_convert_core_file_wine_to_w32_tmp='>
                              name: func_convert_core_file_wine_to_w32_tmp
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <winepath>
                                    more_env: []
                                    words: [{<winepath>} {<-w>} {(DQ ($ Id.VSub_Number 1))}]
                                    redirects: [
                                      (Redir
                                        op: <Id.Redir_Great '2>'>
                                        loc: (redir_loc.Fd fd:2)
                                        arg: {<'/dev/null'>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {(DQ ($ Id.VSub_QMark '?'))} {<-eq>} {<0>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-n>}
                                            {
                                              (DQ 
                                                ($ Id.VSub_DollarName 
func_convert_core_file_wine_to_w32_tmp
                                                )
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'func_convert_core_file_wine_to_w32_result='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'func_convert_core_file_wine_to_w32_result='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: 
                                        <Id.Lit_VarLike 'func_convert_core_file_wine_to_w32_result='>
                                      name: func_convert_core_file_wine_to_w32_result
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName ECHO)}
                                                  {
                                                    (DQ 
                                                      ($ Id.VSub_DollarName 
func_convert_core_file_wine_to_w32_tmp
                                                      )
                                                    )
                                                  }
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {<-e>}
                                                  {(DQ ($ Id.VSub_DollarName sed_naive_backslashify))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [12919 12942]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'func_convert_core_file_wine_to_w32_result='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'func_convert_core_file_wine_to_w32_result='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'func_convert_core_file_wine_to_w32_result='>
                                  name: func_convert_core_file_wine_to_w32_result
                                )
                              op: assign_op.Equal
                              rhs: (rhs_word__Empty)
                            )
                          ]
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [12868 12879]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_convert_core_path_wine_to_w32>
      name: func_convert_core_path_wine_to_w32
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_convert_core_path_wine_to_w32_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_convert_core_path_wine_to_w32_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_convert_core_path_wine_to_w32_result='>
                      name: func_convert_core_path_wine_to_w32_result
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              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: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_Number 1))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'oldIFS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'oldIFS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldIFS='> name:oldIFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName IFS)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'IFS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'IFS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                          op: assign_op.Equal
                          rhs: {<Id.Lit_Colon ':'>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [func_convert_core_path_wine_to_w32_f]
                      iterable: (for_iter.Words words:[{($ Id.VSub_Number 1)}])
                      semi_tok: <Id.Op_Semi _>
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'IFS='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'IFS='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName oldIFS)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_convert_core_file_wine_to_w32>
                              more_env: []
                              words: [
                                {<func_convert_core_file_wine_to_w32>}
                                {(DQ ($ Id.VSub_DollarName func_convert_core_path_wine_to_w32_f))}
                              ]
                              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>}
                                                {<-n>}
                                                {
                                                  (DQ 
                                                    ($ Id.VSub_DollarName 
func_convert_core_file_wine_to_w32_result
                                                    )
                                                  )
                                                }
                                              ]
                                              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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-z>}
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
func_convert_core_path_wine_to_w32_result
                                                            )
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: 
                                                <Id.Lit_VarLike 
'func_convert_core_path_wine_to_w32_result='
                                                >
                                              pairs: [
                                                (AssignPair
                                                  left: 
                                                    <Id.Lit_VarLike 
'func_convert_core_path_wine_to_w32_result='
                                                    >
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: 
                                                        <Id.Lit_VarLike 
'func_convert_core_path_wine_to_w32_result='
                                                        >
                                                      name: 
func_convert_core_path_wine_to_w32_result
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      ($ Id.VSub_DollarName 
func_convert_core_file_wine_to_w32_result
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [13095 13106]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <func_append>
                                          more_env: []
                                          words: [
                                            {<func_append>}
                                            {<func_convert_core_path_wine_to_w32_result>}
                                            {
                                              (DQ <';'> 
                                                ($ Id.VSub_DollarName 
func_convert_core_file_wine_to_w32_result
                                                )
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [13081 13092]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'IFS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'IFS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName oldIFS)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [13036 13047]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_cygpath>
      name: func_cygpath
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              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.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName LT_CYGPATH))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-f>} {(DQ ($ Id.VSub_DollarName LT_CYGPATH))}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_cygpath_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_cygpath_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_cygpath_result='>
                              name: func_cygpath_result
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <Id.VSub_DollarName '$LT_CYGPATH'>
                                    more_env: []
                                    words: [
                                      {($ Id.VSub_DollarName LT_CYGPATH)}
                                      {(DQ ($ Id.VSub_At '@'))}
                                    ]
                                    redirects: [
                                      (Redir
                                        op: <Id.Redir_Great '2>'>
                                        loc: (redir_loc.Fd fd:2)
                                        arg: {<'/dev/null'>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      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: <test>
                                      more_env: []
                                      words: [{<test>} {(DQ ($ Id.VSub_QMark '?'))} {<-ne>} {<0>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'func_cygpath_result='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'func_cygpath_result='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'func_cygpath_result='>
                                      name: func_cygpath_result
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [13244 13257]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [13205 13226]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'func_cygpath_result='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'func_cygpath_result='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'func_cygpath_result='>
                          name: func_cygpath_result
                        )
                      op: assign_op.Equal
                      rhs: (rhs_word__Empty)
                    )
                  ]
                  redirects: []
                )
                (command.Simple
                  blame_tok: <func_error>
                  more_env: []
                  words: [
                    {<func_error>}
                    {
                      (DQ <'LT_CYGPATH is empty or specifies non-existent file: \''> 
                        ($ Id.VSub_DollarName LT_CYGPATH) <'\''>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_convert_core_msys_to_w32>
      name: func_convert_core_msys_to_w32
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_convert_core_msys_to_w32_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_convert_core_msys_to_w32_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_convert_core_msys_to_w32_result='>
                      name: func_convert_core_msys_to_w32_result
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Subshell
                                left: <Id.Op_LParen _>
                                child: 
                                  (command.Simple
                                    blame_tok: <cmd>
                                    more_env: []
                                    words: [{<cmd>} {<'//c'>} {<echo>} {(DQ ($ Id.VSub_Number 1))}]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Right_Subshell _>
                                redirects: [
                                  (Redir
                                    op: <Id.Redir_Great '2>'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                              )
                              (command.Simple
                                blame_tok: <Id.VSub_DollarName '$SED'>
                                more_env: []
                                words: [
                                  {($ Id.VSub_DollarName SED)}
                                  {<-e>}
                                  {(SQ <'s/[ ]*$//'>)}
                                  {<-e>}
                                  {(DQ ($ Id.VSub_DollarName sed_naive_backslashify))}
                                ]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_convert_file_check>
      name: func_convert_file_check
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              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.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-z>} {(DQ ($ Id.VSub_Number 2))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_Number 1))}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <func_error>
                      more_env: []
                      words: [
                        {<func_error>}
                        {(DQ <'Could not determine host file name corresponding to'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <func_error>
                      more_env: []
                      words: [{<func_error>} {(DQ <'  \''> ($ Id.VSub_Number 1) <'\''>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <func_error>
                      more_env: []
                      words: [
                        {<func_error>}
                        {(DQ <'Continuing, but uninstalled executables may not work.'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_to_host_file_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_to_host_file_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_to_host_file_result='>
                              name: func_to_host_file_result
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [13390 13411]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_convert_path_check>
      name: func_convert_path_check
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              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.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-z>} {(DQ ($ Id.VSub_Number 4))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_Number 3))}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <func_error>
                      more_env: []
                      words: [
                        {<func_error>}
                        {(DQ <'Could not determine the host path corresponding to'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <func_error>
                      more_env: []
                      words: [{<func_error>} {(DQ <'  \''> ($ Id.VSub_Number 3) <'\''>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <func_error>
                      more_env: []
                      words: [
                        {<func_error>}
                        {(DQ <'Continuing, but uninstalled executables may not work.'>)}
                      ]
                      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>}
                                        {(DQ <x> ($ Id.VSub_Number 1))}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {(DQ <x> ($ Id.VSub_Number 2))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'lt_replace_pathsep_chars='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'lt_replace_pathsep_chars='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'lt_replace_pathsep_chars='>
                                      name: lt_replace_pathsep_chars
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <'s|'> ($ Id.VSub_Number 1) <'|'> ($ Id.VSub_Number 2) <'|g'>)
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'func_to_host_path_result='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'func_to_host_path_result='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'func_to_host_path_result='>
                                      name: func_to_host_path_result
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {(DQ ($ Id.VSub_Number 3))}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {<-e>}
                                                  {
                                                    (DQ 
                                                      ($ Id.VSub_DollarName lt_replace_pathsep_chars)
                                                    )
                                                  }
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [13533 13551]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'func_to_host_path_result='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'func_to_host_path_result='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'func_to_host_path_result='>
                                  name: func_to_host_path_result
                                )
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_Number 3)}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [13478 13499]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_convert_path_front_back_pathsep>
      name: func_convert_path_front_back_pathsep
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 4)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.VSub_Number '$1'>
                  pattern: (pat.Words words:[{($ Id.VSub_Number 1)}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_to_host_path_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_to_host_path_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_to_host_path_result='>
                              name: func_to_host_path_result
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 3) ($ Id.VSub_DollarName func_to_host_path_result)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 4)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.VSub_Number '$2'>
                  pattern: (pat.Words words:[{($ Id.VSub_Number 2)}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <func_append>
                      more_env: []
                      words: [{<func_append>} {<func_to_host_path_result>} {(DQ ($ Id.VSub_Number 3))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_to_host_file>
      name: func_to_host_file
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$to_host_file_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName to_host_file_cmd)} {(DQ ($ Id.VSub_Number 1))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_to_tool_file>
      name: func_to_tool_file
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{<Id.Lit_Comma ','> ($ Id.VSub_Number 2) <Id.Lit_Comma ','>})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> <Id.Lit_Comma ','> 
                          (DQ ($ Id.VSub_DollarName to_tool_file_cmd)) <Id.Lit_Comma ','> <Id.Lit_Star '*'>
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_to_tool_file_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_to_tool_file_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_to_tool_file_result='>
                              name: func_to_tool_file_result
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$to_tool_file_cmd'>
                      more_env: []
                      words: [{($ Id.VSub_DollarName to_tool_file_cmd)} {(DQ ($ Id.VSub_Number 1))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_to_tool_file_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_to_tool_file_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_to_tool_file_result='>
                              name: func_to_tool_file_result
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_to_host_file_result)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_convert_file_noop>
      name: func_convert_file_noop
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_to_host_file_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_to_host_file_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_to_host_file_result='>
                      name: func_to_host_file_result
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_convert_file_msys_to_w32>
      name: func_convert_file_msys_to_w32
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_to_host_file_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_to_host_file_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_to_host_file_result='>
                      name: func_to_host_file_result
                    )
                  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: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_Number 1))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <func_convert_core_msys_to_w32>
                      more_env: []
                      words: [{<func_convert_core_msys_to_w32>} {(DQ ($ Id.VSub_Number 1))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_to_host_file_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_to_host_file_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_to_host_file_result='>
                              name: func_to_host_file_result
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_convert_core_msys_to_w32_result)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [13868 13879]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <func_convert_file_check>
              more_env: []
              words: [
                {<func_convert_file_check>}
                {(DQ ($ Id.VSub_Number 1))}
                {(DQ ($ Id.VSub_DollarName func_to_host_file_result))}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_convert_file_cygwin_to_w32>
      name: func_convert_file_cygwin_to_w32
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_to_host_file_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_to_host_file_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_to_host_file_result='>
                      name: func_to_host_file_result
                    )
                  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: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_Number 1))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_to_host_file_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_to_host_file_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_to_host_file_result='>
                              name: func_to_host_file_result
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <cygpath>
                                    more_env: []
                                    words: [{<cygpath>} {<-m>} {(DQ ($ Id.VSub_Number 1))}]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [13938 13949]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <func_convert_file_check>
              more_env: []
              words: [
                {<func_convert_file_check>}
                {(DQ ($ Id.VSub_Number 1))}
                {(DQ ($ Id.VSub_DollarName func_to_host_file_result))}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_convert_file_nix_to_w32>
      name: func_convert_file_nix_to_w32
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_to_host_file_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_to_host_file_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_to_host_file_result='>
                      name: func_to_host_file_result
                    )
                  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: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_Number 1))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <func_convert_core_file_wine_to_w32>
                      more_env: []
                      words: [{<func_convert_core_file_wine_to_w32>} {(DQ ($ Id.VSub_Number 1))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_to_host_file_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_to_host_file_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_to_host_file_result='>
                              name: func_to_host_file_result
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_convert_core_file_wine_to_w32_result)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [14019 14030]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <func_convert_file_check>
              more_env: []
              words: [
                {<func_convert_file_check>}
                {(DQ ($ Id.VSub_Number 1))}
                {(DQ ($ Id.VSub_DollarName func_to_host_file_result))}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_convert_file_msys_to_cygwin>
      name: func_convert_file_msys_to_cygwin
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_to_host_file_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_to_host_file_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_to_host_file_result='>
                      name: func_to_host_file_result
                    )
                  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: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_Number 1))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <func_convert_core_msys_to_w32>
                      more_env: []
                      words: [{<func_convert_core_msys_to_w32>} {(DQ ($ Id.VSub_Number 1))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <func_cygpath>
                      more_env: []
                      words: [
                        {<func_cygpath>}
                        {<-u>}
                        {(DQ ($ Id.VSub_DollarName func_convert_core_msys_to_w32_result))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_to_host_file_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_to_host_file_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_to_host_file_result='>
                              name: func_to_host_file_result
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_cygpath_result)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [14089 14100]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <func_convert_file_check>
              more_env: []
              words: [
                {<func_convert_file_check>}
                {(DQ ($ Id.VSub_Number 1))}
                {(DQ ($ Id.VSub_DollarName func_to_host_file_result))}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_convert_file_nix_to_cygwin>
      name: func_convert_file_nix_to_cygwin
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_to_host_file_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_to_host_file_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_to_host_file_result='>
                      name: func_to_host_file_result
                    )
                  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: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_Number 1))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <func_convert_core_file_wine_to_w32>
                      more_env: []
                      words: [{<func_convert_core_file_wine_to_w32>} {(DQ ($ Id.VSub_Number 1))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <func_cygpath>
                      more_env: []
                      words: [
                        {<func_cygpath>}
                        {<-u>}
                        {(DQ ($ Id.VSub_DollarName func_convert_core_file_wine_to_w32_result))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_to_host_file_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_to_host_file_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_to_host_file_result='>
                              name: func_to_host_file_result
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_cygpath_result)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [14171 14182]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <func_convert_file_check>
              more_env: []
              words: [
                {<func_convert_file_check>}
                {(DQ ($ Id.VSub_Number 1))}
                {(DQ ($ Id.VSub_DollarName func_to_host_file_result))}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'to_host_path_cmd='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'to_host_path_cmd='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'to_host_path_cmd='> name:to_host_path_cmd)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <func_init_to_host_path_cmd>
      name: func_init_to_host_path_cmd
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              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>} {<-z>} {(DQ ($ Id.VSub_DollarName to_host_path_cmd))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <func_stripname>
                      more_env: []
                      words: [
                        {<func_stripname>}
                        {(SQ <func_convert_file_>)}
                        {(SQ )}
                        {(DQ ($ Id.VSub_DollarName to_host_file_cmd))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'to_host_path_cmd='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'to_host_path_cmd='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'to_host_path_cmd='>
                              name: to_host_path_cmd
                            )
                          op: assign_op.Equal
                          rhs: {<func_convert_path_> ($ Id.VSub_DollarName func_stripname_result)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [14311 14322]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_to_host_path>
      name: func_to_host_path
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <func_init_to_host_path_cmd>
              more_env: []
              words: [{<func_init_to_host_path_cmd>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$to_host_path_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName to_host_path_cmd)} {(DQ ($ Id.VSub_Number 1))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_convert_path_noop>
      name: func_convert_path_noop
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_to_host_path_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_to_host_path_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_to_host_path_result='>
                      name: func_to_host_path_result
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_convert_path_msys_to_w32>
      name: func_convert_path_msys_to_w32
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_to_host_path_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_to_host_path_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_to_host_path_result='>
                      name: func_to_host_path_result
                    )
                  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: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_Number 1))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <func_stripname>
                      more_env: []
                      words: [
                        {<func_stripname>}
                        {<Id.Lit_Colon ':'>}
                        {<Id.Lit_Colon ':'>}
                        {(DQ ($ Id.VSub_Number 1))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_to_host_path_tmp1='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_to_host_path_tmp1='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_to_host_path_tmp1='>
                              name: func_to_host_path_tmp1
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_stripname_result)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_convert_core_msys_to_w32>
                      more_env: []
                      words: [
                        {<func_convert_core_msys_to_w32>}
                        {(DQ ($ Id.VSub_DollarName func_to_host_path_tmp1))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_to_host_path_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_to_host_path_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_to_host_path_result='>
                              name: func_to_host_path_result
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_convert_core_msys_to_w32_result)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_convert_path_check>
                      more_env: []
                      words: [
                        {<func_convert_path_check>}
                        {<Id.Lit_Colon ':'>}
                        {(DQ <';'>)}
                        {(DQ ($ Id.VSub_DollarName func_to_host_path_tmp1))}
                        {(DQ ($ Id.VSub_DollarName func_to_host_path_result))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <func_convert_path_front_back_pathsep>
                      more_env: []
                      words: [
                        {<func_convert_path_front_back_pathsep>}
                        {(DQ <':*'>)}
                        {(DQ <'*:'>)}
                        {(DQ <';'>)}
                        {(DQ ($ Id.VSub_Number 1))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [14439 14450]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_convert_path_cygwin_to_w32>
      name: func_convert_path_cygwin_to_w32
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_to_host_path_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_to_host_path_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_to_host_path_result='>
                      name: func_to_host_path_result
                    )
                  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: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_Number 1))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <func_stripname>
                      more_env: []
                      words: [
                        {<func_stripname>}
                        {<Id.Lit_Colon ':'>}
                        {<Id.Lit_Colon ':'>}
                        {(DQ ($ Id.VSub_Number 1))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_to_host_path_tmp1='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_to_host_path_tmp1='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_to_host_path_tmp1='>
                              name: func_to_host_path_tmp1
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_stripname_result)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_to_host_path_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_to_host_path_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_to_host_path_result='>
                              name: func_to_host_path_result
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <cygpath>
                                    more_env: []
                                    words: [
                                      {<cygpath>}
                                      {<-m>}
                                      {<-p>}
                                      {(DQ ($ Id.VSub_DollarName func_to_host_path_tmp1))}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_convert_path_check>
                      more_env: []
                      words: [
                        {<func_convert_path_check>}
                        {<Id.Lit_Colon ':'>}
                        {(DQ <';'>)}
                        {(DQ ($ Id.VSub_DollarName func_to_host_path_tmp1))}
                        {(DQ ($ Id.VSub_DollarName func_to_host_path_result))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <func_convert_path_front_back_pathsep>
                      more_env: []
                      words: [
                        {<func_convert_path_front_back_pathsep>}
                        {(DQ <':*'>)}
                        {(DQ <'*:'>)}
                        {(DQ <';'>)}
                        {(DQ ($ Id.VSub_Number 1))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [14563 14574]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_convert_path_nix_to_w32>
      name: func_convert_path_nix_to_w32
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_to_host_path_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_to_host_path_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_to_host_path_result='>
                      name: func_to_host_path_result
                    )
                  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: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_Number 1))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <func_stripname>
                      more_env: []
                      words: [
                        {<func_stripname>}
                        {<Id.Lit_Colon ':'>}
                        {<Id.Lit_Colon ':'>}
                        {(DQ ($ Id.VSub_Number 1))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_to_host_path_tmp1='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_to_host_path_tmp1='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_to_host_path_tmp1='>
                              name: func_to_host_path_tmp1
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_stripname_result)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_convert_core_path_wine_to_w32>
                      more_env: []
                      words: [
                        {<func_convert_core_path_wine_to_w32>}
                        {(DQ ($ Id.VSub_DollarName func_to_host_path_tmp1))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_to_host_path_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_to_host_path_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_to_host_path_result='>
                              name: func_to_host_path_result
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_convert_core_path_wine_to_w32_result)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_convert_path_check>
                      more_env: []
                      words: [
                        {<func_convert_path_check>}
                        {<Id.Lit_Colon ':'>}
                        {(DQ <';'>)}
                        {(DQ ($ Id.VSub_DollarName func_to_host_path_tmp1))}
                        {(DQ ($ Id.VSub_DollarName func_to_host_path_result))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <func_convert_path_front_back_pathsep>
                      more_env: []
                      words: [
                        {<func_convert_path_front_back_pathsep>}
                        {(DQ <':*'>)}
                        {(DQ <'*:'>)}
                        {(DQ <';'>)}
                        {(DQ ($ Id.VSub_Number 1))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [14684 14695]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_convert_path_msys_to_cygwin>
      name: func_convert_path_msys_to_cygwin
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_to_host_path_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_to_host_path_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_to_host_path_result='>
                      name: func_to_host_path_result
                    )
                  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: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_Number 1))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <func_stripname>
                      more_env: []
                      words: [
                        {<func_stripname>}
                        {<Id.Lit_Colon ':'>}
                        {<Id.Lit_Colon ':'>}
                        {(DQ ($ Id.VSub_Number 1))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_to_host_path_tmp1='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_to_host_path_tmp1='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_to_host_path_tmp1='>
                              name: func_to_host_path_tmp1
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_stripname_result)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_convert_core_msys_to_w32>
                      more_env: []
                      words: [
                        {<func_convert_core_msys_to_w32>}
                        {(DQ ($ Id.VSub_DollarName func_to_host_path_tmp1))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <func_cygpath>
                      more_env: []
                      words: [
                        {<func_cygpath>}
                        {<-u>}
                        {<-p>}
                        {(DQ ($ Id.VSub_DollarName func_convert_core_msys_to_w32_result))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_to_host_path_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_to_host_path_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_to_host_path_result='>
                              name: func_to_host_path_result
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_cygpath_result)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_convert_path_check>
                      more_env: []
                      words: [
                        {<func_convert_path_check>}
                        {<Id.Lit_Colon ':'>}
                        {<Id.Lit_Colon ':'>}
                        {(DQ ($ Id.VSub_DollarName func_to_host_path_tmp1))}
                        {(DQ ($ Id.VSub_DollarName func_to_host_path_result))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <func_convert_path_front_back_pathsep>
                      more_env: []
                      words: [
                        {<func_convert_path_front_back_pathsep>}
                        {(DQ <':*'>)}
                        {(DQ <'*:'>)}
                        {<Id.Lit_Colon ':'>}
                        {(DQ ($ Id.VSub_Number 1))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [14800 14811]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_convert_path_nix_to_cygwin>
      name: func_convert_path_nix_to_cygwin
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_to_host_path_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_to_host_path_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_to_host_path_result='>
                      name: func_to_host_path_result
                    )
                  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: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_Number 1))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <func_stripname>
                      more_env: []
                      words: [
                        {<func_stripname>}
                        {<Id.Lit_Colon ':'>}
                        {<Id.Lit_Colon ':'>}
                        {(DQ ($ Id.VSub_Number 1))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_to_host_path_tmp1='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_to_host_path_tmp1='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_to_host_path_tmp1='>
                              name: func_to_host_path_tmp1
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_stripname_result)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_convert_core_path_wine_to_w32>
                      more_env: []
                      words: [
                        {<func_convert_core_path_wine_to_w32>}
                        {(DQ ($ Id.VSub_DollarName func_to_host_path_tmp1))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <func_cygpath>
                      more_env: []
                      words: [
                        {<func_cygpath>}
                        {<-u>}
                        {<-p>}
                        {(DQ ($ Id.VSub_DollarName func_convert_core_path_wine_to_w32_result))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'func_to_host_path_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'func_to_host_path_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'func_to_host_path_result='>
                              name: func_to_host_path_result
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_cygpath_result)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_convert_path_check>
                      more_env: []
                      words: [
                        {<func_convert_path_check>}
                        {<Id.Lit_Colon ':'>}
                        {<Id.Lit_Colon ':'>}
                        {(DQ ($ Id.VSub_DollarName func_to_host_path_tmp1))}
                        {(DQ ($ Id.VSub_DollarName func_to_host_path_result))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <func_convert_path_front_back_pathsep>
                      more_env: []
                      words: [
                        {<func_convert_path_front_back_pathsep>}
                        {(DQ <':*'>)}
                        {(DQ <'*:'>)}
                        {<Id.Lit_Colon ':'>}
                        {(DQ ($ Id.VSub_Number 1))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [14926 14937]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_dll_def_p>
      name: func_dll_def_p
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_dll_def_p_tmp='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_dll_def_p_tmp='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_dll_def_p_tmp='>
                      name: func_dll_def_p_tmp
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <Id.VSub_DollarName '$SED'>
                            more_env: []
                            words: [
                              {($ Id.VSub_DollarName SED)}
                              {<-n>}
                              {<-e>}
                              {(SQ <'s/^[\t ]*//'>)}
                              {<-e>}
                              {(SQ <'/^\\(;.*\\)*$/d'>)}
                              {<-e>}
                              {(SQ <'s/^\\(EXPORTS\\|LIBRARY\\)\\([\t ].*\\)*$/DEF/p'>)}
                              {<-e>}
                              {<q>}
                              {(DQ ($ Id.VSub_Number 1))}
                            ]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <test>
              more_env: []
              words: [
                {<test>}
                {<DEF>}
                {<Id.Lit_Equals '='>}
                {(DQ ($ Id.VSub_DollarName func_dll_def_p_tmp))}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_mode_compile>
      name: func_mode_compile
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'base_compile='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'base_compile='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'base_compile='> name:base_compile)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'srcfile='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'srcfile='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'srcfile='> name:srcfile)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName nonopt)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'suppress_opt='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'suppress_opt='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'suppress_opt='> name:suppress_opt)
                  op: assign_op.Equal
                  rhs: {<yes>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'suppress_output='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'suppress_output='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'suppress_output='>
                      name: suppress_output
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'arg_mode='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'arg_mode='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg_mode='> name:arg_mode)
                  op: assign_op.Equal
                  rhs: {<normal>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'libobj='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'libobj='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libobj='> name:libobj)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'later='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'later='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'later='> name:later)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'pie_flag='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'pie_flag='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pie_flag='> name:pie_flag)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [arg]
              iterable: (for_iter__Args)
              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 arg_mode)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <arg>
                          pattern: (pat.Words words:[{<arg>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'lastarg='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'lastarg='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'lastarg='>
                                      name: lastarg
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName arg)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'arg_mode='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'arg_mode='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'arg_mode='>
                                      name: arg_mode
                                    )
                                  op: assign_op.Equal
                                  rhs: {<normal>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <target>
                          pattern: (pat.Words words:[{<target>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'libobj='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'libobj='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libobj='> name:libobj)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName arg)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'arg_mode='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'arg_mode='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'arg_mode='>
                                      name: arg_mode
                                    )
                                  op: assign_op.Equal
                                  rhs: {<normal>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <normal>
                          pattern: (pat.Words words:[{<normal>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName arg)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <-o>
                                  pattern: (pat.Words words:[{<-o>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName libobj))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <func_fatal_error>
                                          more_env: []
                                          words: [
                                            {<func_fatal_error>}
                                            {(DQ <'you cannot specify \'-o\' more than once'>)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'arg_mode='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'arg_mode='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'arg_mode='>
                                              name: arg_mode
                                            )
                                          op: assign_op.Equal
                                          rhs: {<target>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <-pie>
                                  pattern: (pat.Words words:[{<-pie>} {<-fpie>} {<-fPIE>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<pie_flag>}
                                        {(DQ <' '> ($ Id.VSub_DollarName arg))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <-shared>
                                  pattern: 
                                    (pat.Words
                                      words: [{<-shared>} {<-static>} {<-prefer-pic>} {<-prefer-non-pic>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<later>}
                                        {(DQ <' '> ($ Id.VSub_DollarName arg))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <-no-suppress>
                                  pattern: (pat.Words words:[{<-no-suppress>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'suppress_opt='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'suppress_opt='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'suppress_opt='>
                                              name: suppress_opt
                                            )
                                          op: assign_op.Equal
                                          rhs: {<no>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <-Xcompiler>
                                  pattern: (pat.Words words:[{<-Xcompiler>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'arg_mode='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'arg_mode='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'arg_mode='>
                                              name: arg_mode
                                            )
                                          op: assign_op.Equal
                                          rhs: {<arg>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <-Wc>
                                  pattern: 
                                    (pat.Words
                                      words: [{<-Wc> <Id.Lit_Comma ','> <Id.Lit_Star '*'>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_stripname>
                                      more_env: []
                                      words: [
                                        {<func_stripname>}
                                        {(SQ <'-Wc,'>)}
                                        {(SQ )}
                                        {(DQ ($ Id.VSub_DollarName arg))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'args='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'args='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'args='>
                                              name: args
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'lastarg='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'lastarg='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'lastarg='>
                                              name: lastarg
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Sentence
                                      child: 
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'save_ifs='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'save_ifs='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'save_ifs='>
                                                  name: save_ifs
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName IFS)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'IFS='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'IFS='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'IFS='>
                                              name: IFS
                                            )
                                          op: assign_op.Equal
                                          rhs: {<Id.Lit_Comma ','>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [arg]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName args)}]
                                        )
                                      semi_tok: <Id.Op_Semi _>
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'IFS='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'IFS='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'IFS='>
                                                      name: IFS
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName save_ifs)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <func_append_quoted>
                                              more_env: []
                                              words: [
                                                {<func_append_quoted>}
                                                {<lastarg>}
                                                {(DQ ($ Id.VSub_DollarName arg))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'IFS='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'IFS='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'IFS='>
                                              name: IFS
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName save_ifs)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_stripname>
                                      more_env: []
                                      words: [
                                        {<func_stripname>}
                                        {(SQ <' '>)}
                                        {(SQ )}
                                        {(DQ ($ Id.VSub_DollarName lastarg))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'lastarg='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'lastarg='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'lastarg='>
                                              name: lastarg
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<base_compile>}
                                        {(DQ <' '> ($ Id.VSub_DollarName lastarg))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'lastarg='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'lastarg='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'lastarg='>
                                              name: lastarg
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName srcfile)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'srcfile='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'srcfile='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'srcfile='>
                                              name: srcfile
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName arg)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_append_quoted>
                      more_env: []
                      words: [
                        {<func_append_quoted>}
                        {<base_compile>}
                        {(DQ ($ Id.VSub_DollarName lastarg))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName arg_mode)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <arg>
                  pattern: (pat.Words words:[{<arg>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <func_fatal_error>
                      more_env: []
                      words: [{<func_fatal_error>} {(DQ <'you must specify an argument for -Xcompile'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <target>
                  pattern: (pat.Words words:[{<target>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <func_fatal_error>
                      more_env: []
                      words: [{<func_fatal_error>} {(DQ <'you must specify a target with \'-o\''>)}]
                      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: <test>
                          more_env: []
                          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName libobj))}]
                          redirects: []
                          do_fork: T
                        )
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [
                            (command.Simple
                              blame_tok: <func_basename>
                              more_env: []
                              words: [{<func_basename>} {(DQ ($ Id.VSub_DollarName srcfile))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'libobj='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'libobj='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libobj='> name:libobj)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_basename_result)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName libobj)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> <.> <Id.Lit_LBracket '['> <cCFSifmso> <Id.Lit_RBracket ']'>}
                        {<Id.Lit_Star '*'> <.ada>}
                        {<Id.Lit_Star '*'> <.adb>}
                        {<Id.Lit_Star '*'> <.ads>}
                        {<Id.Lit_Star '*'> <.asm>}
                        {<Id.Lit_Star '*'> <.c> <Id.Lit_Other '+'> <Id.Lit_Other '+'>}
                        {<Id.Lit_Star '*'> <.cc>}
                        {<Id.Lit_Star '*'> <.ii>}
                        {<Id.Lit_Star '*'> <.class>}
                        {<Id.Lit_Star '*'> <.cpp>}
                        {<Id.Lit_Star '*'> <.cxx>}
                        {<Id.Lit_Star '*'> <.> <Id.Lit_LBracket '['> <fF> <Id.Lit_RBracket ']'> 
                          <Id.Lit_LBracket '['> <09> <Id.Lit_RBracket ']'> <Id.Lit_QMark '?'>
                        }
                        {<Id.Lit_Star '*'> <.for>}
                        {<Id.Lit_Star '*'> <.java>}
                        {<Id.Lit_Star '*'> <.go>}
                        {<Id.Lit_Star '*'> <.obj>}
                        {<Id.Lit_Star '*'> <.sx>}
                        {<Id.Lit_Star '*'> <.cu>}
                        {<Id.Lit_Star '*'> <.cup>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <func_xform>
                      more_env: []
                      words: [{<func_xform>} {(DQ ($ Id.VSub_DollarName libobj))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'libobj='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'libobj='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libobj='> name:libobj)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_xform_result)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName libobj)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.lo>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <func_lo2o>
                          more_env: []
                          words: [{<func_lo2o>} {(DQ ($ Id.VSub_DollarName libobj))}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'obj='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'obj='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'obj='> name:obj)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_lo2o_result)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <func_fatal_error>
                      more_env: []
                      words: [
                        {<func_fatal_error>}
                        {
                          (DQ <'cannot determine name of library object from \''> 
                            ($ Id.VSub_DollarName libobj) <'\''>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <func_infer_tag>
              more_env: []
              words: [{<func_infer_tag>} {($ Id.VSub_DollarName base_compile)}]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [arg]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName later)}])
              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 arg)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <-shared>
                          pattern: (pat.Words words:[{<-shared>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<yes>}
                                    {<Id.Lit_Equals '='>}
                                    {(DQ ($ Id.VSub_DollarName build_libtool_libs))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_fatal_configuration>
                                  more_env: []
                                  words: [
                                    {<func_fatal_configuration>}
                                    {(DQ <'cannot build a shared library'>)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'build_old_libs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'build_old_libs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'build_old_libs='>
                                      name: build_old_libs
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-static>
                          pattern: (pat.Words words:[{<-static>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'build_libtool_libs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'build_libtool_libs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'build_libtool_libs='>
                                      name: build_libtool_libs
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'build_old_libs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'build_old_libs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'build_old_libs='>
                                      name: build_old_libs
                                    )
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-prefer-pic>
                          pattern: (pat.Words words:[{<-prefer-pic>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'pic_mode='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'pic_mode='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'pic_mode='>
                                      name: pic_mode
                                    )
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-prefer-non-pic>
                          pattern: (pat.Words words:[{<-prefer-non-pic>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'pic_mode='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'pic_mode='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'pic_mode='>
                                      name: pic_mode
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <func_quote_for_eval>
              more_env: []
              words: [{<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName libobj))}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {(DQ <X> ($ Id.VSub_DollarName libobj))}
                    {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                    {(DQ <X> ($ Id.VSub_DollarName func_quote_for_eval_result))}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Pipeline
                  children: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$ECHO'>
                      more_env: []
                      words: [{($ Id.VSub_DollarName ECHO)} {(DQ <X> ($ Id.VSub_DollarName libobj))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$GREP'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName GREP)}
                        {(SQ <'[]~#^*{};<>?"'>) (DQ <'\''>) (SQ <'\t &()|`$[]'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_Pipe _>]
                )
                (command.Simple
                  blame_tok: <func_warning>
                  more_env: []
                  words: [
                    {<func_warning>}
                    {
                      (DQ <'libobj name \''> ($ Id.VSub_DollarName libobj) 
                        <'\' may not contain shell special characters.'>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <func_dirname_and_basename>
              more_env: []
              words: [{<func_dirname_and_basename>} {(DQ ($ Id.VSub_DollarName obj))} {(DQ <'/'>)} {(DQ )}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'objname='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'objname='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'objname='> name:objname)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_basename_result)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'xdir='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'xdir='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'xdir='> name:xdir)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_dirname_result)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'lobj='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'lobj='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lobj='> name:lobj)
                  op: assign_op.Equal
                  rhs: 
                    {($ Id.VSub_DollarName xdir) ($ Id.VSub_DollarName objdir) <'/'> 
                      ($ Id.VSub_DollarName objname)
                    }
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName base_compile))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <func_fatal_help>
                  more_env: []
                  words: [{<func_fatal_help>} {(DQ <'you must specify a compilation command'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (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>}
                                {<yes>}
                                {<Id.Lit_Equals '='>}
                                {(DQ ($ Id.VSub_DollarName build_old_libs))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'removelist='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'removelist='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'removelist='> name:removelist)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName obj) <' '> ($ Id.VSub_DollarName lobj) <' '> 
                                ($ Id.VSub_DollarName libobj) <' '> (${ Id.VSub_Name libobj) <T>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [16066 16079]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'removelist='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'removelist='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'removelist='> name:removelist)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (DQ ($ Id.VSub_DollarName lobj) <' '> ($ Id.VSub_DollarName libobj) <' '> 
                            (${ Id.VSub_Name libobj) <T>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName host_os)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <cygwin>
                  pattern: 
                    (pat.Words
                      words: [
                        {<cygwin> <Id.Lit_Star '*'>}
                        {<mingw> <Id.Lit_Star '*'>}
                        {<pw32> <Id.Lit_Star '*'>}
                        {<os2> <Id.Lit_Star '*'>}
                        {<cegcc> <Id.Lit_Star '*'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'pic_mode='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'pic_mode='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pic_mode='> name:pic_mode)
                          op: assign_op.Equal
                          rhs: {<default>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<no>}
                                    {<Id.Lit_Equals '='>}
                                    {(DQ ($ Id.VSub_DollarName pic_mode))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<pass_all>}
                                    {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                    {(DQ ($ Id.VSub_DollarName deplibs_check_method))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'pic_mode='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'pic_mode='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pic_mode='> name:pic_mode)
                          op: assign_op.Equal
                          rhs: {<default>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [16163 16189]
                )
              ]
              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: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<no>}
                                {<Id.Lit_Equals '='>}
                                {(DQ ($ Id.VSub_DollarName compiler_c_o))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'output_obj='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'output_obj='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output_obj='> name:output_obj)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <Id.VSub_DollarName '$ECHO'>
                                        more_env: []
                                        words: [
                                          {($ Id.VSub_DollarName ECHO)}
                                          {(DQ ($ Id.VSub_DollarName srcfile))}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                        more_env: []
                                        words: [
                                          {($ Id.VSub_DollarName SED)}
                                          {(SQ <'s%^.*/%%; s%\\.[^.]*$%%'>)}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              ) <.> ($ Id.VSub_DollarName objext)
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'lockfile='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'lockfile='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lockfile='> name:lockfile)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName output_obj) <.lock>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [16212 16225]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'output_obj='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'output_obj='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output_obj='> name:output_obj)
                      op: assign_op.Equal
                      rhs: (rhs_word__Empty)
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'need_locks='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'need_locks='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'need_locks='> name:need_locks)
                      op: assign_op.Equal
                      rhs: {<no>}
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'lockfile='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'lockfile='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lockfile='> name:lockfile)
                      op: assign_op.Equal
                      rhs: (rhs_word__Empty)
                    )
                  ]
                  redirects: []
                )
              ]
              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: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<yes>}
                                {<Id.Lit_Equals '='>}
                                {(DQ ($ Id.VSub_DollarName need_locks))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.WhileUntil
                      keyword: <Id.KW_Until until>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.AndOr
                                  children: [
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                      more_env: []
                                      words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <ln>
                                      more_env: []
                                      words: [
                                        {<ln>}
                                        {(DQ ($ Id.VSub_DollarName progpath))}
                                        {(DQ ($ Id.VSub_DollarName lockfile))}
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_Great '2>'>
                                          loc: (redir_loc.Fd fd:2)
                                          arg: {<'/dev/null'>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  ops: [<Id.Op_DPipe _>]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Simple
                              blame_tok: <func_echo>
                              more_env: []
                              words: [
                                {<func_echo>}
                                {
                                  (DQ <'Waiting for '> ($ Id.VSub_DollarName lockfile) 
                                    <' to be removed'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <sleep>
                              more_env: []
                              words: [{<sleep>} {<2>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  spids: [16282 16295]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<warn>}
                                {<Id.Lit_Equals '='>}
                                {(DQ ($ Id.VSub_DollarName need_locks))}
                              ]
                              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: <test>
                                      more_env: []
                                      words: [{<test>} {<-f>} {(DQ ($ Id.VSub_DollarName lockfile))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$ECHO'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName ECHO)}
                                {
                                  (DQ <'*** ERROR, '> ($ Id.VSub_DollarName lockfile) 
                                    <' exists and contains:\n'> 
                                    (CommandSub
                                      left_token: <Id.Left_Backtick '`'>
                                      child: 
                                        (command.Simple
                                          blame_tok: <cat>
                                          more_env: []
                                          words: [{<cat>} {($ Id.VSub_DollarName lockfile)}]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '2>'>
                                              loc: (redir_loc.Fd fd:2)
                                              arg: {<'/dev/null'>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      right: <Id.Backtick_Right '`'>
                                    ) <'\n'> <'\n'> <'This indicates that another process is trying to use the same\n'> 
                                    <
'temporary object file, and libtool could not work around it because\n'
                                    > <'your compiler does not support \'-c\' and \'-o\' together.  If you\n'> 
                                    <
'repeat this compilation, it may succeed, by chance, but you had better\n'
                                    > <'avoid parallel builds (make -j) in this platform, or get a better\n'> <compiler.>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                  more_env: []
                                  words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$RM'>
                                  more_env: []
                                  words: [
                                    {($ Id.VSub_DollarName RM)}
                                    {($ Id.VSub_DollarName removelist)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName EXIT_FAILURE)}
                            )
                          ]
                          spids: [16354 16365]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_append>
                      more_env: []
                      words: [
                        {<func_append>}
                        {<removelist>}
                        {(DQ <' '> ($ Id.VSub_DollarName output_obj))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$ECHO'>
                      more_env: []
                      words: [{($ Id.VSub_DollarName ECHO)} {(DQ ($ Id.VSub_DollarName srcfile))}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_DollarName lockfile))}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [16338 16351]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName opt_dry_run)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$RM'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName RM)} {($ Id.VSub_DollarName removelist)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <func_append>
              more_env: []
              words: [{<func_append>} {<removelist>} {(DQ <' '> ($ Id.VSub_DollarName lockfile))}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <trap>
              more_env: []
              words: [
                {<trap>}
                {(SQ <'$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'>)}
                {<1>}
                {<2>}
                {<15>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <func_to_tool_file>
              more_env: []
              words: [
                {<func_to_tool_file>}
                {(DQ ($ Id.VSub_DollarName srcfile))}
                {<func_convert_file_msys_to_w32>}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'srcfile='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'srcfile='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'srcfile='> name:srcfile)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_to_tool_file_result)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <func_quote_for_eval>
              more_env: []
              words: [{<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName srcfile))}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'qsrcfile='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'qsrcfile='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'qsrcfile='> name:qsrcfile)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_quote_for_eval_result)}
                )
              ]
              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: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<yes>}
                                {<Id.Lit_Equals '='>}
                                {(DQ ($ Id.VSub_DollarName build_libtool_libs))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'fbsd_hideous_sh_bug='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'fbsd_hideous_sh_bug='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'fbsd_hideous_sh_bug='>
                              name: fbsd_hideous_sh_bug
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName base_compile)}
                        )
                      ]
                      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: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<no>}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName pic_mode))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'command='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'command='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'command='>
                                      name: command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName base_compile) <' '> 
                                        ($ Id.VSub_DollarName qsrcfile) <' '> ($ Id.VSub_DollarName pic_flag)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [16528 16542]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'command='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'command='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'command='> name:command)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName base_compile) <' '> 
                                    ($ Id.VSub_DollarName qsrcfile)
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_mkdir_p>
                      more_env: []
                      words: [
                        {<func_mkdir_p>}
                        {(DQ ($ Id.VSub_DollarName xdir) ($ Id.VSub_DollarName objdir))}
                      ]
                      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>} {<-z>} {(DQ ($ Id.VSub_DollarName output_obj))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<command>}
                                {(DQ <' -o '> ($ Id.VSub_DollarName lobj))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [16583 16594]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_show_eval_locale>
                      more_env: []
                      words: [
                        {<func_show_eval_locale>}
                        {(DQ ($ Id.VSub_DollarName command))}
                        {(SQ <'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'>)}
                      ]
                      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.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<warn>}
                                            {<Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_DollarName need_locks))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {
                                              (DQ <X> 
                                                (CommandSub
                                                  left_token: <Id.Left_Backtick '`'>
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <cat>
                                                      more_env: []
                                                      words: [{<cat>} {($ Id.VSub_DollarName lockfile)}]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_Great '2>'>
                                                          loc: (redir_loc.Fd fd:2)
                                                          arg: {<'/dev/null'>}
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                  right: <Id.Backtick_Right '`'>
                                                )
                                              )
                                            }
                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                            {(DQ <X> ($ Id.VSub_DollarName srcfile))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$ECHO'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName ECHO)}
                                {
                                  (DQ <'*** ERROR, '> ($ Id.VSub_DollarName lockfile) <' contains:\n'> 
                                    (CommandSub
                                      left_token: <Id.Left_Backtick '`'>
                                      child: 
                                        (command.Simple
                                          blame_tok: <cat>
                                          more_env: []
                                          words: [{<cat>} {($ Id.VSub_DollarName lockfile)}]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '2>'>
                                              loc: (redir_loc.Fd fd:2)
                                              arg: {<'/dev/null'>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      right: <Id.Backtick_Right '`'>
                                    ) <'\n'> <'\n'> <'but it should contain:\n'> ($ Id.VSub_DollarName srcfile) <'\n'> <'\n'> 
                                    <
'This indicates that another process is trying to use the same\n'
                                    > <'temporary object file, and libtool could not work around it because\n'> 
                                    <
'your compiler does not support \'-c\' and \'-o\' together.  If you\n'
                                    > <'repeat this compilation, it may succeed, by chance, but you had better\n'> 
                                    <
'avoid parallel builds (make -j) in this platform, or get a better\n'
                                    > <compiler.>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                  more_env: []
                                  words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$RM'>
                                  more_env: []
                                  words: [
                                    {($ Id.VSub_DollarName RM)}
                                    {($ Id.VSub_DollarName removelist)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName EXIT_FAILURE)}
                            )
                          ]
                          spids: [16629 16669]
                        )
                      ]
                      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.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-n>}
                                            {(DQ ($ Id.VSub_DollarName output_obj))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {(DQ <X> ($ Id.VSub_DollarName output_obj))}
                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                            {(DQ <X> ($ Id.VSub_DollarName lobj))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <func_show_eval>
                              more_env: []
                              words: [
                                {<func_show_eval>}
                                {(SQ <'$MV "$output_obj" "$lobj"'>)}
                                {(SQ <'error=$?; $opt_dry_run || $RM $removelist; exit $error'>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [16727 16755]
                        )
                      ]
                      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: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<yes>}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName suppress_opt))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'suppress_output='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'suppress_output='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'suppress_output='>
                                      name: suppress_output
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <' >/dev/null 2>&1'>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [16779 16792]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [16503 16516]
                )
              ]
              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: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<yes>}
                                {<Id.Lit_Equals '='>}
                                {(DQ ($ Id.VSub_DollarName build_old_libs))}
                              ]
                              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: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<yes>}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName pic_mode))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'command='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'command='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'command='>
                                      name: command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName base_compile) <' '> 
                                        ($ Id.VSub_DollarName qsrcfile) ($ Id.VSub_DollarName pie_flag)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [16828 16842]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'command='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'command='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'command='> name:command)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName base_compile) <' '> 
                                    ($ Id.VSub_DollarName qsrcfile) <' '> ($ Id.VSub_DollarName pic_flag)
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                      ]
                      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: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<yes>}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName compiler_c_o))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<command>}
                                {(DQ <' -o '> ($ Id.VSub_DollarName obj))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [16874 16887]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_append>
                      more_env: []
                      words: [{<func_append>} {<command>} {(DQ ($ Id.VSub_DollarName suppress_output))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <func_show_eval_locale>
                      more_env: []
                      words: [
                        {<func_show_eval_locale>}
                        {(DQ ($ Id.VSub_DollarName command))}
                        {(SQ <'$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'>)}
                      ]
                      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.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<warn>}
                                            {<Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_DollarName need_locks))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {
                                              (DQ <X> 
                                                (CommandSub
                                                  left_token: <Id.Left_Backtick '`'>
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <cat>
                                                      more_env: []
                                                      words: [{<cat>} {($ Id.VSub_DollarName lockfile)}]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_Great '2>'>
                                                          loc: (redir_loc.Fd fd:2)
                                                          arg: {<'/dev/null'>}
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                  right: <Id.Backtick_Right '`'>
                                                )
                                              )
                                            }
                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                            {(DQ <X> ($ Id.VSub_DollarName srcfile))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$ECHO'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName ECHO)}
                                {
                                  (DQ <'*** ERROR, '> ($ Id.VSub_DollarName lockfile) <' contains:\n'> 
                                    (CommandSub
                                      left_token: <Id.Left_Backtick '`'>
                                      child: 
                                        (command.Simple
                                          blame_tok: <cat>
                                          more_env: []
                                          words: [{<cat>} {($ Id.VSub_DollarName lockfile)}]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '2>'>
                                              loc: (redir_loc.Fd fd:2)
                                              arg: {<'/dev/null'>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      right: <Id.Backtick_Right '`'>
                                    ) <'\n'> <'\n'> <'but it should contain:\n'> ($ Id.VSub_DollarName srcfile) <'\n'> <'\n'> 
                                    <
'This indicates that another process is trying to use the same\n'
                                    > <'temporary object file, and libtool could not work around it because\n'> 
                                    <
'your compiler does not support \'-c\' and \'-o\' together.  If you\n'
                                    > <'repeat this compilation, it may succeed, by chance, but you had better\n'> 
                                    <
'avoid parallel builds (make -j) in this platform, or get a better\n'
                                    > <compiler.>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                  more_env: []
                                  words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$RM'>
                                  more_env: []
                                  words: [
                                    {($ Id.VSub_DollarName RM)}
                                    {($ Id.VSub_DollarName removelist)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName EXIT_FAILURE)}
                            )
                          ]
                          spids: [16931 16971]
                        )
                      ]
                      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.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-n>}
                                            {(DQ ($ Id.VSub_DollarName output_obj))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {(DQ <X> ($ Id.VSub_DollarName output_obj))}
                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                            {(DQ <X> ($ Id.VSub_DollarName obj))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <func_show_eval>
                              more_env: []
                              words: [
                                {<func_show_eval>}
                                {(SQ <'$MV "$output_obj" "$obj"'>)}
                                {(SQ <'error=$?; $opt_dry_run || $RM $removelist; exit $error'>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [17029 17057]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [16812 16825]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName opt_dry_run)}]
                  redirects: []
                  do_fork: T
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Simple
                      blame_tok: <func_write_libtool_object>
                      more_env: []
                      words: [
                        {<func_write_libtool_object>}
                        {(DQ ($ Id.VSub_DollarName libobj))}
                        {(DQ ($ Id.VSub_DollarName objdir) <'/'> ($ Id.VSub_DollarName objname))}
                        {(DQ ($ Id.VSub_DollarName objname))}
                      ]
                      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>}
                                        {<no>}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName need_locks))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'removelist='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'removelist='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'removelist='>
                                      name: removelist
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName lockfile)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$RM'>
                              more_env: []
                              words: [{($ Id.VSub_DollarName RM)} {(DQ ($ Id.VSub_DollarName lockfile))}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [17109 17123]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <Id.VSub_DollarName '$opt_help'>
          more_env: []
          words: [{($ Id.VSub_DollarName opt_help)}]
          redirects: []
          do_fork: T
        )
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {<compile>}
                    {<Id.Lit_Equals '='>}
                    {(DQ ($ Id.VSub_DollarName opt_mode))}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <func_mode_compile>
                  more_env: []
                  words: [
                    {<func_mode_compile>}
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Number 1>
                        var_name: 1
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VTest_Plus _>
                            arg_word: {(DQ ($ Id.VSub_At '@'))}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.ShFunction
      name_tok: <func_mode_help>
      name: func_mode_help
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName opt_mode)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_DoubleQuote '"'>
                  pattern: (pat.Words words:[{(DQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <func_help>
                      more_env: []
                      words: [{<func_help>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <clean>
                  pattern: (pat.Words words:[{<clean>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$ECHO'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName ECHO)}
                        {
                          (DQ <'Usage: '> ($ Id.VSub_DollarName progname) 
                            <' [OPTION]... --mode=clean RM [RM-OPTION]... FILE...\n'> <'\n'> <'Remove files from the build directory.\n'> <'\n'> 
                            <
'RM is the name of the program to use to delete files associated with each FILE\n'
                            > <'(typically \'/bin/rm\').  RM-OPTIONS are options (such as \'-f\') to be passed\n'> <'to RM.\n'> 
                            <'\n'> <'If FILE is a libtool library, object or program, all the files associated\n'> 
                            <
'with it are deleted. Otherwise, only FILE itself is deleted using RM.'
                            >
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <compile>
                  pattern: (pat.Words words:[{<compile>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$ECHO'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName ECHO)}
                        {
                          (DQ <'Usage: '> ($ Id.VSub_DollarName progname) 
                            <' [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE\n'> <'\n'> <'Compile a source file into a libtool library object.\n'> <'\n'> 
                            <'This mode accepts the following additional options:\n'> <'\n'> <'  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE\n'> 
                            <
'  -no-suppress      do not suppress compiler output for multiple passes\n'
                            > <'  -prefer-pic       try to build PIC objects only\n'> 
                            <'  -prefer-non-pic   try to build non-PIC objects only\n'> <'  -shared           do not build a \'.o\' file suitable for static linking\n'> 
                            <
'  -static           only build a \'.o\' file suitable for static linking\n'
                            > <'  -Wc,FLAG          pass FLAG directly to the compiler\n'> <'\n'> 
                            <
'COMPILE-COMMAND is a command to be used in creating a \'standard\' object file\n'
                            > <'from the given SOURCEFILE.\n'> <'\n'> 
                            <
'The output file name is determined by removing the directory component from\n'
                            > <'SOURCEFILE, then substituting the C source code suffix \'.c\' with the\n'> 
                            <'library object suffix, \'.lo\'.'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <execute>
                  pattern: (pat.Words words:[{<execute>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$ECHO'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName ECHO)}
                        {
                          (DQ <'Usage: '> ($ Id.VSub_DollarName progname) 
                            <' [OPTION]... --mode=execute COMMAND [ARGS]...\n'> <'\n'> <'Automatically set library path, then run a program.\n'> <'\n'> 
                            <'This mode accepts the following additional options:\n'> <'\n'> <'  -dlopen FILE      add the directory containing FILE to the library path\n'> <'\n'> 
                            <
'This mode sets the library path environment variable according to \'-dlopen\'\n'
                            > <'flags.\n'> <'\n'> <'If any of the ARGS are libtool executable wrappers, then they are translated\n'> 
                            <
'into their corresponding uninstalled binary, and any of their required library\n'
                            > <'directories are added to the library path.\n'> <'\n'> 
                            <'Then, COMMAND is executed, with ARGS as arguments.'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <finish>
                  pattern: (pat.Words words:[{<finish>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$ECHO'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName ECHO)}
                        {
                          (DQ <'Usage: '> ($ Id.VSub_DollarName progname) 
                            <' [OPTION]... --mode=finish [LIBDIR]...\n'> <'\n'> <'Complete the installation of libtool libraries.\n'> <'\n'> 
                            <'Each LIBDIR is a directory that contains libtool libraries.\n'> <'\n'> <'The commands that this mode executes may require superuser privileges.  Use\n'> 
                            <
'the \'--dry-run\' option if you just want to see what would be executed.'
                            >
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <install>
                  pattern: (pat.Words words:[{<install>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$ECHO'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName ECHO)}
                        {
                          (DQ <'Usage: '> ($ Id.VSub_DollarName progname) 
                            <' [OPTION]... --mode=install INSTALL-COMMAND...\n'> <'\n'> <'Install executables or libraries.\n'> <'\n'> 
                            <
'INSTALL-COMMAND is the installation command.  The first component should be\n'
                            > <'either the \'install\' or \'cp\' program.\n'> <'\n'> 
                            <'The following components of INSTALL-COMMAND are treated specially:\n'> <'\n'> <'  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation\n'> <'\n'> 
                            <
'The rest of the components are interpreted as arguments to that command (only\n'
                            > <'BSD-compatible install options are recognized).'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <link>
                  pattern: (pat.Words words:[{<link>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$ECHO'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName ECHO)}
                        {
                          (DQ <'Usage: '> ($ Id.VSub_DollarName progname) 
                            <' [OPTION]... --mode=link LINK-COMMAND...\n'> <'\n'> <'Link object files or libraries together to form another library, or to\n'> 
                            <'create an executable program.\n'> <'\n'> <'LINK-COMMAND is a command using the C compiler that you would use to create\n'> 
                            <'a program from several object files.\n'> <'\n'> <'The following components of LINK-COMMAND are treated specially:\n'> <'\n'> 
                            <'  -all-static       do not do any dynamic linking at all\n'> <'  -avoid-version    do not add a version suffix if possible\n'> 
                            <
'  -bindir BINDIR    specify path to binaries directory (for systems where\n'
                            > <'                    libraries must be found in the PATH setting at runtime)\n'> 
                            <
'  -dlopen FILE      \'-dlpreopen\' FILE if it cannot be dlopened at runtime\n'
                            > <'  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols\n'> 
                            <
'  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)\n'
                            > <'  -export-symbols SYMFILE\n'> 
                            <
'                    try to export only the symbols listed in SYMFILE\n'
                            > <'  -export-symbols-regex REGEX\n'> 
                            <'                    try to export only the symbols matching REGEX\n'> <'  -LLIBDIR          search LIBDIR for required installed libraries\n'> 
                            <
'  -lNAME            OUTPUT-FILE requires the installed library libNAME\n'
                            > <'  -module           build a library that can dlopened\n'> 
                            <'  -no-fast-install  disable the fast-install mode\n'> <'  -no-install       link a not-installable executable\n'> 
                            <
'  -no-undefined     declare that a library does not refer to external symbols\n'
                            > <'  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects\n'> 
                            <
'  -objectlist FILE  use a list of object files found in FILE to specify objects\n'
                            > <'  -os2dllname NAME  force a short DLL name on OS/2 (no effect on other OSes)\n'> 
                            <'  -precious-files-regex REGEX\n'> <'                    don\'t remove output files matching REGEX\n'> 
                            <'  -release RELEASE  specify package release information\n'> <'  -rpath LIBDIR     the created library will eventually be installed in LIBDIR\n'> 
                            <
'  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries\n'
                            > <'  -shared           only do dynamic linking of libtool libraries\n'> 
                            <
'  -shrext SUFFIX    override the standard shared library file extension\n'
                            > <'  -static           do not do any dynamic linking of uninstalled libtool libraries\n'> 
                            <'  -static-libtool-libs\n'> <'                    do not do any dynamic linking of libtool libraries\n'> 
                            <'  -version-info CURRENT[:REVISION[:AGE]]\n'> <'                    specify library version info [each variable defaults to 0]\n'> 
                            <
'  -weak LIBNAME     declare that the target provides the LIBNAME interface\n'
                            > <'  -Wc,FLAG\n'> <'  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler\n'> 
                            <'  -Wl,FLAG\n'> <'  -Xlinker FLAG     pass linker-specific FLAG directly to the linker\n'> 
                            <
'  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)\n'
                            > <'\n'> <'All other options (arguments beginning with \'-\') are ignored.\n'> <'\n'> 
                            <
'Every other argument is treated as a filename.  Files ending in \'.la\' are\n'
                            > <'treated as uninstalled libtool libraries, other files are standard or library\n'> 
                            <'object files.\n'> <'\n'> <'If the OUTPUT-FILE ends in \'.la\', then a libtool library is created,\n'> 
                            <
'only library objects (\'.lo\' files) may be specified, and \'-rpath\' is\n'
                            > <'required, except when creating a convenience library.\n'> <'\n'> 
                            <
'If OUTPUT-FILE ends in \'.a\' or \'.lib\', then a standard library is created\n'
                            > <'using \'ar\' and \'ranlib\', or on Windows using \'lib\'.\n'> <'\n'> 
                            <'If OUTPUT-FILE ends in \'.lo\' or \'.'> ($ Id.VSub_DollarName objext) <'\', then a reloadable object file\n'> 
                            <'is created, otherwise an executable program is created.'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <uninstall>
                  pattern: (pat.Words words:[{<uninstall>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$ECHO'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName ECHO)}
                        {
                          (DQ <'Usage: '> ($ Id.VSub_DollarName progname) 
                            <' [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...\n'> <'\n'> <'Remove libraries from an installation directory.\n'> <'\n'> 
                            <
'RM is the name of the program to use to delete files associated with each FILE\n'
                            > <'(typically \'/bin/rm\').  RM-OPTIONS are options (such as \'-f\') to be passed\n'> <'to RM.\n'> 
                            <'\n'> <'If FILE is a libtool library, all the files associated with it are deleted.\n'> 
                            <'Otherwise, only FILE itself is deleted using RM.'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <func_fatal_help>
                      more_env: []
                      words: [
                        {<func_fatal_help>}
                        {(DQ <'invalid operation mode \''> ($ Id.VSub_DollarName opt_mode) <'\''>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$ECHO'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName ECHO)}
                {
                  (DQ <'Try \''> ($ Id.VSub_DollarName progname) 
                    <' --help\' for more information about other modes.'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (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.VSub_DollarName '$opt_help'>
                      more_env: []
                      words: [{($ Id.VSub_DollarName opt_help)}]
                      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: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<Id.Lit_Colon ':'>}
                                {<Id.Lit_Equals '='>}
                                {(DQ ($ Id.VSub_DollarName opt_help))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <func_mode_help>
                      more_env: []
                      words: [{<func_mode_help>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [17529 17542]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Pipeline
                  children: [
                    (BraceGroup
                      left: <Id.Lit_LBrace '{'>
                      children: [
                        (command.Simple
                          blame_tok: <func_help>
                          more_env: []
                          words: [{<func_help>} {<noexit>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ForEach
                          keyword: <Id.KW_For for>
                          iter_names: [opt_mode]
                          iterable: 
                            (for_iter.Words
                              words: [
                                {<compile>}
                                {<link>}
                                {<execute>}
                                {<install>}
                                {<finish>}
                                {<uninstall>}
                                {<clean>}
                              ]
                            )
                          semi_tok: <Id.Op_Semi _>
                          body: 
                            (command.DoGroup
                              left: <Id.KW_Do do>
                              children: [
                                (command.Simple
                                  blame_tok: <func_mode_help>
                                  more_env: []
                                  words: [{<func_mode_help>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              right: <Id.KW_Done done>
                            )
                          redirects: []
                        )
                      ]
                      redirects: []
                      right: <Id.Lit_RBrace '}'>
                    )
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$SED'>
                      more_env: []
                      words: [{($ Id.VSub_DollarName SED)} {<-n>} {(SQ <'1p; 2,$s/^Usage:/  or: /p'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_Pipe _>]
                )
                (command.Pipeline
                  children: [
                    (BraceGroup
                      left: <Id.Lit_LBrace '{'>
                      children: [
                        (command.Simple
                          blame_tok: <func_help>
                          more_env: []
                          words: [{<func_help>} {<noexit>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ForEach
                          keyword: <Id.KW_For for>
                          iter_names: [opt_mode]
                          iterable: 
                            (for_iter.Words
                              words: [
                                {<compile>}
                                {<link>}
                                {<execute>}
                                {<install>}
                                {<finish>}
                                {<uninstall>}
                                {<clean>}
                              ]
                            )
                          semi_tok: <Id.Op_Semi _>
                          body: 
                            (command.DoGroup
                              left: <Id.KW_Do do>
                              children: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [{<echo>}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_mode_help>
                                  more_env: []
                                  words: [{<func_mode_help>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              right: <Id.KW_Done done>
                            )
                          redirects: []
                        )
                      ]
                      redirects: []
                      right: <Id.Lit_RBrace '}'>
                    )
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$SED'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName SED)}
                        {
                          (SQ <'1d\n'> <'      /^When reporting/,/^Report/{\n'> <'\tH\n'> <'\td\n'> 
                            <'      }\n'> <'      $x\n'> <'      /information about other modes/d\n'> <'      /more detailed .*MODE/d\n'> 
                            <'      s/^Usage:.*--mode=\\([^ ]*\\) .*/Description of \\1 mode:/'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_Pipe _>]
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_QMark '?')}
            )
          ]
          spids: [17521 17526]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShFunction
      name_tok: <func_mode_execute>
      name: func_mode_execute
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cmd='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cmd='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName nonopt)}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName cmd))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <func_fatal_help>
                  more_env: []
                  words: [{<func_fatal_help>} {(DQ <'you must specify a COMMAND'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [file]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName opt_dlopen)}])
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-f>} {(DQ ($ Id.VSub_DollarName file))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <func_fatal_help>
                          more_env: []
                          words: [
                            {<func_fatal_help>}
                            {(DQ <'\''> ($ Id.VSub_DollarName file) <'\' is not a file'>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'dir='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'dir='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName file)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.la>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_resolve_sysroot>
                              more_env: []
                              words: [{<func_resolve_sysroot>} {(DQ ($ Id.VSub_DollarName file))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'file='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'file='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_resolve_sysroot_result)}
                                )
                              ]
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <func_lalib_unsafe_p>
                                  more_env: []
                                  words: [{<func_lalib_unsafe_p>} {(DQ ($ Id.VSub_DollarName file))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_fatal_help>
                                  more_env: []
                                  words: [
                                    {<func_fatal_help>}
                                    {
                                      (DQ <'\''> ($ Id.VSub_DollarName lib) 
                                        <'\' is not a valid libtool archive'>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'dlname='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dlname='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dlname='> name:dlname)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'library_names='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'library_names='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'library_names='>
                                      name: library_names
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_source>
                              more_env: []
                              words: [{<func_source>} {(DQ ($ Id.VSub_DollarName file))}]
                              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>}
                                                {<-z>}
                                                {(DQ ($ Id.VSub_DollarName dlname))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-n>}
                                            {(DQ ($ Id.VSub_DollarName library_names))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <func_warning>
                                          more_env: []
                                          words: [
                                            {<func_warning>}
                                            {
                                              (DQ <'\''> ($ Id.VSub_DollarName file) 
                                                <'\' was not linked with \'-export-dynamic\''>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [17828 17839]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_dirname>
                              more_env: []
                              words: [
                                {<func_dirname>}
                                {(DQ ($ Id.VSub_DollarName file))}
                                {(DQ )}
                                {(DQ <.>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'dir='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dir='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_dirname_result)}
                                )
                              ]
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-f>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName dir) <'/'> 
                                                    ($ Id.VSub_DollarName objdir) <'/'> ($ Id.VSub_DollarName dlname)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<dir>}
                                        {(DQ <'/'> ($ Id.VSub_DollarName objdir))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [17893 17908]
                                )
                              ]
                              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.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<Id.KW_Bang '!'>}
                                                    {<-f>}
                                                    {
                                                      (DQ ($ Id.VSub_DollarName dir) <'/'> 
                                                        ($ Id.VSub_DollarName dlname)
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.Simple
                                          blame_tok: <func_fatal_error>
                                          more_env: []
                                          words: [
                                            {<func_fatal_error>}
                                            {
                                              (DQ <'cannot find \''> ($ Id.VSub_DollarName dlname) 
                                                <'\' in \''> ($ Id.VSub_DollarName dir) <'\' or \''> ($ Id.VSub_DollarName dir) <'/'> ($ Id.VSub_DollarName objdir) 
                                                <'\''>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      spids: [17924 17939]
                                    )
                                  ]
                                  else_action: []
                                  fi_kw: <Id.KW_Fi fi>
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.lo>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_dirname>
                              more_env: []
                              words: [
                                {<func_dirname>}
                                {(DQ ($ Id.VSub_DollarName file))}
                                {(DQ )}
                                {(DQ <.>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'dir='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dir='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_dirname_result)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_warning>
                              more_env: []
                              words: [
                                {<func_warning>}
                                {
                                  (DQ 
                                    <'\'-dlopen\' is ignored for non-libtool libraries and objects'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'absdir='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'absdir='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'absdir='> name:absdir)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.AndOr
                                    children: [
                                      (command.Simple
                                        blame_tok: <cd>
                                        more_env: []
                                        words: [{<cd>} {(DQ ($ Id.VSub_DollarName dir))}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <pwd>
                                        more_env: []
                                        words: [{<pwd>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_DAmp _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName absdir))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'dir='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'dir='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName absdir)}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (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: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {
                                          (DQ <'test -z '> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                            ($ Id.VSub_DollarName shlibpath_var) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {
                                  (DQ ($ Id.VSub_DollarName shlibpath_var) <'='> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <dir> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    )
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [18058 18071]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <eval>
                          more_env: []
                          words: [
                            {<eval>}
                            {
                              (DQ ($ Id.VSub_DollarName shlibpath_var) <'='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                  ch: '"'
                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'dir:'> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\$'>
                                  ch: '$'
                                ) ($ Id.VSub_DollarName shlibpath_var) 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                  ch: '"'
                                )
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'libtool_execute_magic='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'libtool_execute_magic='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'libtool_execute_magic='>
                      name: libtool_execute_magic
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName magic)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'args='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'args='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'args='> name:args)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [file]
              iterable: (for_iter__Args)
              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 file)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <->
                          pattern: 
                            (pat.Words
                              words: [
                                {<-> <Id.Lit_Star '*'>}
                                {<Id.Lit_Star '*'> <.la>}
                                {<Id.Lit_Star '*'> <.lo>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.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: <func_ltwrapper_script_p>
                                              more_env: []
                                              words: [
                                                {<func_ltwrapper_script_p>}
                                                {(DQ ($ Id.VSub_DollarName file))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_source>
                                      more_env: []
                                      words: [{<func_source>} {(DQ ($ Id.VSub_DollarName file))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'file='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'file='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'file='>
                                              name: file
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName progdir) <'/'> 
                                              ($ Id.VSub_DollarName program)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [18171 18180]
                                )
                                (IfArm
                                  keyword: <Id.KW_Elif elif>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <func_ltwrapper_executable_p>
                                              more_env: []
                                              words: [
                                                {<func_ltwrapper_executable_p>}
                                                {(DQ ($ Id.VSub_DollarName file))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_ltwrapper_scriptname>
                                      more_env: []
                                      words: [
                                        {<func_ltwrapper_scriptname>}
                                        {(DQ ($ Id.VSub_DollarName file))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_source>
                                      more_env: []
                                      words: [
                                        {<func_source>}
                                        {(DQ ($ Id.VSub_DollarName func_ltwrapper_scriptname_result))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'file='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'file='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'file='>
                                              name: file
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName progdir) <'/'> 
                                              ($ Id.VSub_DollarName program)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [18200 18209]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_append_quoted>
                      more_env: []
                      words: [{<func_append_quoted>} {<args>} {(DQ ($ Id.VSub_DollarName file))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              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.VSub_DollarName '$opt_dry_run'>
                              more_env: []
                              words: [{($ Id.VSub_DollarName opt_dry_run)}]
                              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: <test>
                                      more_env: []
                                      words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName shlibpath_var))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {
                                  (DQ 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'shlibpath_var='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                    ($ Id.VSub_DollarName shlibpath_var) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ <'export '> ($ Id.VSub_DollarName shlibpath_var))}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [18274 18285]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$ECHO'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName ECHO)}
                        {(DQ ($ Id.VSub_DollarName cmd) ($ Id.VSub_DollarName args))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
                    )
                  ]
                  spids: [18262 18267]
                )
              ]
              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.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName shlibpath_var))}]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      then_kw: <Id.KW_Then then>
                      action: [
                        (command.Simple
                          blame_tok: <eval>
                          more_env: []
                          words: [{<eval>} {(DQ <'export '> ($ Id.VSub_DollarName shlibpath_var))}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      spids: [18329 18340]
                    )
                  ]
                  else_action: []
                  fi_kw: <Id.KW_Fi fi>
                  redirects: []
                )
                (command.ForEach
                  keyword: <Id.KW_For for>
                  iter_names: [lt_var]
                  iterable: 
                    (for_iter.Words
                      words: [{<LANG>} {<LANGUAGE>} {<LC_ALL>} {<LC_CTYPE>} {<LC_COLLATE>} {<LC_MESSAGES>}]
                    )
                  body: 
                    (command.DoGroup
                      left: <Id.KW_Do do>
                      children: [
                        (command.Simple
                          blame_tok: <eval>
                          more_env: []
                          words: [
                            {<eval>}
                            {
                              (DQ <'if test '> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                  ch: '"'
                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'{save_'> 
                                ($ Id.VSub_DollarName lt_var) <'+set}'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' = set; then\n'> 
                                <'                '> ($ Id.VSub_DollarName lt_var) <'='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                <save_> ($ Id.VSub_DollarName lt_var) <'; export '> ($ Id.VSub_DollarName lt_var) <'\n'> <'\t      else\n'> 
                                <'\t\t'> ($ Id.VSub_DollarName lt_unset) <' '> ($ Id.VSub_DollarName lt_var) <'\n'> <'\t      fi'>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      right: <Id.KW_Done done>
                    )
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'exec_cmd='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'exec_cmd='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exec_cmd='> name:exec_cmd)
                      op: assign_op.Equal
                      rhs: 
                        {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <cmd> 
                          ($ Id.VSub_DollarName args)
                        }
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<execute>} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName opt_mode))}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <func_mode_execute>
          more_env: []
          words: [
            {<func_mode_execute>}
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Number 1>
                var_name: 1
                suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
                right: <Id.Right_DollarBrace '}'>
              )
            }
          ]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.ShFunction
      name_tok: <func_mode_finish>
      name: func_mode_finish
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'libs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'libs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libs='> name:libs)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'libdirs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'libdirs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libdirs='> name:libdirs)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'admincmds='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'admincmds='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'admincmds='> name:admincmds)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [opt]
              iterable: 
                (for_iter.Words
                  words: [
                    {(DQ ($ Id.VSub_DollarName nonopt))}
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Number 1>
                        var_name: 1
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VTest_Plus _>
                            arg_word: {(DQ ($ Id.VSub_At '@'))}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                  ]
                )
              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: <test>
                                      more_env: []
                                      words: [{<test>} {<-d>} {(DQ ($ Id.VSub_DollarName opt))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [{<func_append>} {<libdirs>} {(DQ <' '> ($ Id.VSub_DollarName opt))}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [18505 18516]
                        )
                        (IfArm
                          keyword: <Id.KW_Elif elif>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <test>
                                      more_env: []
                                      words: [{<test>} {<-f>} {(DQ ($ Id.VSub_DollarName opt))}]
                                      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: <func_lalib_unsafe_p>
                                              more_env: []
                                              words: [
                                                {<func_lalib_unsafe_p>}
                                                {(DQ ($ Id.VSub_DollarName opt))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<libs>}
                                        {(DQ <' '> ($ Id.VSub_DollarName opt))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [18544 18553]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <func_warning>
                                  more_env: []
                                  words: [
                                    {<func_warning>}
                                    {
                                      (DQ <'\''> ($ Id.VSub_DollarName opt) 
                                        <'\' is not a valid libtool archive'>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          spids: [18530 18541]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <func_fatal_error>
                          more_env: []
                          words: [
                            {<func_fatal_error>}
                            {(DQ <'invalid argument \''> ($ Id.VSub_DollarName opt) <'\''>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              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: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName libs))}]
                              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: <test>
                                      more_env: []
                                      words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName lt_sysroot))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'sysroot_regex='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'sysroot_regex='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'sysroot_regex='>
                                      name: sysroot_regex
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName ECHO)}
                                                  {(DQ ($ Id.VSub_DollarName lt_sysroot))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {(DQ ($ Id.VSub_DollarName sed_make_literal_regex))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'sysroot_cmd='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'sysroot_cmd='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'sysroot_cmd='>
                                      name: sysroot_cmd
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <'s/'> <Id.Lit_BadBackslash '\\'> <'([ \']'> 
                                        <Id.Lit_BadBackslash '\\'> <')'> ($ Id.VSub_DollarName sysroot_regex) <'/'> <Id.Lit_BadBackslash '\\'> <'1/g;'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [18615 18626]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'sysroot_cmd='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'sysroot_cmd='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'sysroot_cmd='>
                                  name: sysroot_cmd
                                )
                              op: assign_op.Equal
                              rhs: (rhs_word__Empty)
                            )
                          ]
                          redirects: []
                        )
                      ]
                      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.VSub_DollarName '$opt_dry_run'>
                                      more_env: []
                                      words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [lib]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName libs)}])
                              semi_tok: <Id.Op_Semi _>
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ <'removing references to '> 
                                            ($ Id.VSub_DollarName lt_sysroot) <' and \'=\' prefixes from '> ($ Id.VSub_DollarName lib)
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          spids: [18677 18682]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'tmpdir='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'tmpdir='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tmpdir='> name:tmpdir)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Simple
                                        blame_tok: <func_mktempdir>
                                        more_env: []
                                        words: [{<func_mktempdir>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                        (command.ForEach
                          keyword: <Id.KW_For for>
                          iter_names: [lib]
                          iterable: (for_iter.Words words:[{($ Id.VSub_DollarName libs)}])
                          semi_tok: <Id.Op_Semi _>
                          body: 
                            (command.DoGroup
                              left: <Id.KW_Do do>
                              children: [
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$SED'>
                                  more_env: []
                                  words: [
                                    {($ Id.VSub_DollarName SED)}
                                    {<-e>}
                                    {
                                      (DQ ($ Id.VSub_DollarName sysroot_cmd) <' s/'> 
                                        <Id.Lit_BadBackslash '\\'> <'([ \']-[LR]'> <Id.Lit_BadBackslash '\\'> <')=/'> <Id.Lit_BadBackslash '\\'> <'1/g; s/'> 
                                        <Id.Lit_BadBackslash '\\'> <'([ \']'> <Id.Lit_BadBackslash '\\'> <')=/'> <Id.Lit_BadBackslash '\\'> <'1/g'>
                                      )
                                    }
                                    {($ Id.VSub_DollarName lib)}
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {($ Id.VSub_DollarName tmpdir) <'/tmp-la'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <mv>
                                  more_env: []
                                  words: [
                                    {<mv>}
                                    {<-f>}
                                    {($ Id.VSub_DollarName tmpdir) <'/tmp-la'>}
                                    {($ Id.VSub_DollarName lib)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              right: <Id.KW_Done done>
                            )
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <Id.Left_DollarBrace '${'>
                          more_env: []
                          words: [{(${ Id.VSub_Name RM) <r>} {(DQ ($ Id.VSub_DollarName tmpdir))}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [18601 18612]
                )
              ]
              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.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<-n>}
                                    {
                                      (DQ ($ Id.VSub_DollarName finish_cmds) 
                                        ($ Id.VSub_DollarName finish_eval)
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName libdirs))}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [libdir]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName libdirs)}])
                      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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-n>}
                                                {(DQ ($ Id.VSub_DollarName finish_cmds))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_execute_cmds>
                                      more_env: []
                                      words: [
                                        {<func_execute_cmds>}
                                        {(DQ ($ Id.VSub_DollarName finish_cmds))}
                                        {(SQ <'admincmds="$admincmds\n'>) 
                                          (DQ ($ Id.VSub_DollarName cmd)) (SQ <'"'>)
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [18831 18842]
                                )
                              ]
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-n>}
                                                {(DQ ($ Id.VSub_DollarName finish_eval))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {<Id.Lit_VarLike 'cmds='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                            ch: '"'
                                          ) ($ Id.VSub_DollarName finish_eval) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                          more_env: []
                                          words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <eval>
                                          more_env: []
                                          words: [{<eval>} {(DQ ($ Id.VSub_DollarName cmds))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <func_append>
                                          more_env: []
                                          words: [
                                            {<func_append>}
                                            {<admincmds>}
                                            {(DQ <'\n'> <'       '> ($ Id.VSub_DollarName cmds))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                                    )
                                  ]
                                  spids: [18869 18880]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  spids: [18794 18816]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$opt_quiet'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName opt_quiet)}]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow
                  keyword: <Id.ControlFlow_Exit exit>
                  arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<-n>}
                                    {
                                      (DQ ($ Id.VSub_DollarName finish_cmds) 
                                        ($ Id.VSub_DollarName finish_eval)
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName libdirs))}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ 
                            <---------------------------------------------------------------------->
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'Libraries have been installed in:'>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [libdir]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName libdirs)}])
                      semi_tok: <Id.Op_Semi _>
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$ECHO'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName ECHO)}
                                {(DQ <'   '> ($ Id.VSub_DollarName libdir))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ <'If you ever happen to want to link against installed libraries'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ <'in a given directory, LIBDIR, you must either use libtool, and'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ <'specify the full pathname of the library, or use the \'-LLIBDIR\''>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ <'flag during linking and do at least one of the following:'>)}
                      ]
                      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>} {<-n>} {(DQ ($ Id.VSub_DollarName shlibpath_var))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ <'   - add LIBDIR to the \''> 
                                    ($ Id.VSub_DollarName shlibpath_var) <'\' environment variable'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ <'     during execution'>)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [19035 19046]
                        )
                      ]
                      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: <test>
                                      more_env: []
                                      words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName runpath_var))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ <'   - add LIBDIR to the \''> ($ Id.VSub_DollarName runpath_var) 
                                    <'\' environment variable'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ <'     during linking'>)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [19068 19079]
                        )
                      ]
                      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: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<-n>}
                                        {(DQ ($ Id.VSub_DollarName hardcode_libdir_flag_spec))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'libdir='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'libdir='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libdir='> name:libdir)
                                  op: assign_op.Equal
                                  rhs: {<LIBDIR>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {<Id.Lit_VarLike 'flag='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                    ch: '"'
                                  ) ($ Id.VSub_DollarName hardcode_libdir_flag_spec) 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                    ch: '"'
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$ECHO'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName ECHO)}
                                {
                                  (DQ <'   - use the \''> ($ Id.VSub_DollarName flag) 
                                    <'\' linker flag'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [19101 19112]
                        )
                      ]
                      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: <test>
                                      more_env: []
                                      words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName admincmds))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$ECHO'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName ECHO)}
                                {
                                  (DQ <'   - have your system administrator run these commands:'> 
                                    ($ Id.VSub_DollarName admincmds)
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [19140 19151]
                        )
                      ]
                      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: <test>
                                      more_env: []
                                      words: [{<test>} {<-f>} {<'/etc/ld.so.conf'>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ 
                                    <
'   - have your system administrator add LIBDIR to \'/etc/ld.so.conf\''
                                    >
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [19165 19174]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ <'See any operating system documentation about shared libraries for'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <solaris2.>
                          pattern: 
                            (pat.Words
                              words: [
                                {<solaris2.> <Id.Lit_LBracket '['> <6789> <Id.Lit_RBracket ']'>}
                                {<solaris2.1> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ 
                                    <
'more information, such as the ld(1), crle(1) and ld.so(8) manual'
                                    >
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ <pages.>)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ 
                                    <
'more information, such as the ld(1) and ld.so(8) manual pages.'
                                    >
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ 
                            <---------------------------------------------------------------------->
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [18942 18964]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<finish>} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName opt_mode))}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <func_mode_finish>
          more_env: []
          words: [
            {<func_mode_finish>}
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Number 1>
                var_name: 1
                suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
                right: <Id.Right_DollarBrace '}'>
              )
            }
          ]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.ShFunction
      name_tok: <func_mode_install>
      name: func_mode_install
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {(DQ ($ Id.VSub_DollarName SHELL))}
                                {<Id.Lit_Equals '='>}
                                {(DQ ($ Id.VSub_DollarName nonopt))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<'/bin/sh'>}
                                {<Id.Lit_Equals '='>}
                                {(DQ ($ Id.VSub_DollarName nonopt))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName nonopt)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [{<Id.Lit_Star '*'> <shtool> <Id.Lit_Star '*'>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_Colon ':'>
                                      more_env: []
                                      words: [{<Id.Lit_Colon ':'>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <false>
                                      more_env: []
                                      words: [{<false>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <func_quote_for_eval>
                      more_env: []
                      words: [{<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName nonopt))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'install_prog='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'install_prog='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'install_prog='>
                              name: install_prog
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName func_quote_for_eval_result) <' '>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'arg='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'arg='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [19315 19371]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'install_prog='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'install_prog='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'install_prog='> name:install_prog)
                      op: assign_op.Equal
                      rhs: (rhs_word__Empty)
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'arg='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'arg='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName nonopt)}
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <func_quote_for_eval>
              more_env: []
              words: [{<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName arg))}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <func_append>
              more_env: []
              words: [
                {<func_append>}
                {<install_prog>}
                {(DQ ($ Id.VSub_DollarName func_quote_for_eval_result))}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'install_shared_prog='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'install_shared_prog='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'install_shared_prog='>
                      name: install_shared_prog
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName install_prog)}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName install_prog) <' '>)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\\\'>
                            ch: '\\'
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '> ch:' ') <'/'> <Id.Lit_RBracket ']'> <cp> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\ '>
                            ch: ' '
                          ) <Id.Lit_Star '*'>
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'install_cp='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'install_cp='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'install_cp='> name:install_cp)
                          op: assign_op.Equal
                          rhs: {<Id.Lit_Colon ':'>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'install_cp='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'install_cp='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'install_cp='> name:install_cp)
                          op: assign_op.Equal
                          rhs: {<false>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'dest='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'dest='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dest='> name:dest)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'files='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'files='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'files='> name:files)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'opts='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'opts='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'opts='> name:opts)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'prev='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'prev='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'install_type='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'install_type='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'install_type='> name:install_type)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'isdir='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'isdir='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'isdir='> name:isdir)
                  op: assign_op.Equal
                  rhs: {<false>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'stripme='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'stripme='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'stripme='> name:stripme)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'no_mode='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'no_mode='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'no_mode='> name:no_mode)
                  op: assign_op.Equal
                  rhs: {<Id.Lit_Colon ':'>}
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [arg]
              iterable: (for_iter__Args)
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'arg2='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'arg2='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg2='> name:arg2)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      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: <test>
                                      more_env: []
                                      words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName dest))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [{<func_append>} {<files>} {(DQ <' '> ($ Id.VSub_DollarName dest))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'dest='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dest='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dest='> name:dest)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName arg)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [19523 19534]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName arg)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <-d>
                          pattern: (pat.Words words:[{<-d>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'isdir='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'isdir='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'isdir='> name:isdir)
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Colon ':'>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-f>
                          pattern: (pat.Words words:[{<-f>}])
                          middle: <Id.Right_CasePat _>
                          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.VSub_DollarName '$install_cp'>
                                              more_env: []
                                              words: [{($ Id.VSub_DollarName install_cp)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          blame_tok: <Id.Lit_Colon ':'>
                                          more_env: []
                                          words: [{<Id.Lit_Colon ':'>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  spids: [19578 19583]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'prev='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'prev='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName arg)}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-g>
                          pattern: (pat.Words words:[{<-g>} {<-m>} {<-o>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'prev='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'prev='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName arg)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-s>
                          pattern: (pat.Words words:[{<-s>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'stripme='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'stripme='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'stripme='>
                                      name: stripme
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <' -s'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <->
                          pattern: (pat.Words words:[{<-> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.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>} {<-n>} {(DQ ($ Id.VSub_DollarName prev))}]
                                              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.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<X-m>}
                                                            {<Id.Lit_Equals '='>}
                                                            {(DQ <X> ($ Id.VSub_DollarName prev))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
install_override_mode
                                                                )
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'arg2='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'arg2='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'arg2='>
                                                      name: arg2
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName install_override_mode)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'no_mode='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'no_mode='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'no_mode='>
                                                      name: no_mode
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<false>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [19666 19690]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prev='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prev='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [19652 19663]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'dest='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'dest='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dest='> name:dest)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName arg)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Continue continue>
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_quote_for_eval>
                      more_env: []
                      words: [{<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName arg))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <func_append>
                      more_env: []
                      words: [
                        {<func_append>}
                        {<install_prog>}
                        {(DQ <' '> ($ Id.VSub_DollarName func_quote_for_eval_result))}
                      ]
                      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>} {<-n>} {(DQ ($ Id.VSub_DollarName arg2))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <func_quote_for_eval>
                              more_env: []
                              words: [{<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName arg2))}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [19748 19759]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_append>
                      more_env: []
                      words: [
                        {<func_append>}
                        {<install_shared_prog>}
                        {(DQ <' '> ($ Id.VSub_DollarName func_quote_for_eval_result))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName install_prog))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <func_fatal_help>
                  more_env: []
                  words: [{<func_fatal_help>} {(DQ <'you must specify an install program'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName prev))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <func_fatal_help>
                  more_env: []
                  words: [
                    {<func_fatal_help>}
                    {(DQ <'the \''> ($ Id.VSub_DollarName prev) <'\' option requires an argument'>)}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<-n>}
                                    {(DQ ($ Id.VSub_DollarName install_override_mode))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$no_mode'>
                                  more_env: []
                                  words: [{($ Id.VSub_DollarName no_mode)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                          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.VSub_DollarName '$install_cp'>
                                      more_env: []
                                      words: [{($ Id.VSub_DollarName install_cp)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <Id.Lit_Colon ':'>
                                  more_env: []
                                  words: [{<Id.Lit_Colon ':'>}]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          spids: [19846 19851]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <func_quote_for_eval>
                          more_env: []
                          words: [
                            {<func_quote_for_eval>}
                            {(DQ ($ Id.VSub_DollarName install_override_mode))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <func_append>
                          more_env: []
                          words: [
                            {<func_append>}
                            {<install_shared_prog>}
                            {(DQ <' -m '> ($ Id.VSub_DollarName func_quote_for_eval_result))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [19828 19843]
                )
              ]
              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: <test>
                              more_env: []
                              words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName files))}]
                              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: <test>
                                      more_env: []
                                      words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName dest))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <func_fatal_help>
                              more_env: []
                              words: [{<func_fatal_help>} {(DQ <'no file or destination specified'>)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [19897 19908]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <func_fatal_help>
                          more_env: []
                          words: [{<func_fatal_help>} {(DQ <'you must specify a destination'>)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [19883 19894]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <func_stripname>
              more_env: []
              words: [{<func_stripname>} {(SQ )} {(SQ <'/'>)} {(DQ ($ Id.VSub_DollarName dest))}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'dest='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'dest='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dest='> name:dest)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-d>} {(DQ ($ Id.VSub_DollarName dest))}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'isdir='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'isdir='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'isdir='> name:isdir)
                      op: assign_op.Equal
                      rhs: {<Id.Lit_Colon ':'>}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (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.VSub_DollarName '$isdir'>
                              more_env: []
                              words: [{($ Id.VSub_DollarName isdir)}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'destdir='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'destdir='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'destdir='> name:destdir)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName dest)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'destname='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'destname='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'destname='> name:destname)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [19976 19981]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <func_dirname_and_basename>
                  more_env: []
                  words: [
                    {<func_dirname_and_basename>}
                    {(DQ ($ Id.VSub_DollarName dest))}
                    {(DQ )}
                    {(DQ <.>)}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'destdir='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'destdir='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'destdir='> name:destdir)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName func_dirname_result)}
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'destname='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'destname='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'destname='> name:destname)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName func_basename_result)}
                    )
                  ]
                  redirects: []
                )
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [{<set>} {<dummy>} {($ Id.VSub_DollarName files)}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Simple
                  blame_tok: <shift>
                  more_env: []
                  words: [{<shift>}]
                  redirects: []
                  do_fork: T
                )
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {(DQ ($ Id.VSub_Pound '#'))} {<-gt>} {<1>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <func_fatal_help>
                      more_env: []
                      words: [
                        {<func_fatal_help>}
                        {(DQ <'\''> ($ Id.VSub_DollarName dest) <'\' is not a directory'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_DAmp _>]
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName destdir)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_LBracket '['>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_LBracket '['> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\\\'>
                            ch: '\\'
                          ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                        }
                        {<Id.Lit_LBracket '['> <A-Za-z> <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> 
                          <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/'> <Id.Lit_RBracket ']'> 
                          <Id.Lit_Star '*'>
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [file]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName files)}])
                      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 file)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.lo>}])
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_fatal_help>
                                      more_env: []
                                      words: [
                                        {<func_fatal_help>}
                                        {
                                          (DQ <'\''> ($ Id.VSub_DollarName destdir) 
                                            <'\' must be an absolute directory name'>
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'libtool_install_magic='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'libtool_install_magic='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'libtool_install_magic='>
                      name: libtool_install_magic
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName magic)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'staticlibs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'staticlibs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'staticlibs='> name:staticlibs)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'future_libdirs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'future_libdirs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'future_libdirs='> name:future_libdirs)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'current_libdirs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'current_libdirs='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'current_libdirs='>
                      name: current_libdirs
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [file]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName files)}])
              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 file)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [{<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName libext)}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<staticlibs>}
                                {(DQ <' '> ($ Id.VSub_DollarName file))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.la>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_resolve_sysroot>
                              more_env: []
                              words: [{<func_resolve_sysroot>} {(DQ ($ Id.VSub_DollarName file))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'file='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'file='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_resolve_sysroot_result)}
                                )
                              ]
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <func_lalib_unsafe_p>
                                  more_env: []
                                  words: [{<func_lalib_unsafe_p>} {(DQ ($ Id.VSub_DollarName file))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_fatal_help>
                                  more_env: []
                                  words: [
                                    {<func_fatal_help>}
                                    {
                                      (DQ <'\''> ($ Id.VSub_DollarName file) 
                                        <'\' is not a valid libtool archive'>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'library_names='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'library_names='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'library_names='>
                                      name: library_names
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'old_library='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'old_library='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'old_library='>
                                      name: old_library
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'relink_command='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'relink_command='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'relink_command='>
                                      name: relink_command
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_source>
                              more_env: []
                              words: [{<func_source>} {(DQ ($ Id.VSub_DollarName file))}]
                              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>}
                                                {(DQ <X> ($ Id.VSub_DollarName destdir))}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ <X> ($ Id.VSub_DollarName libdir))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ ($ Id.VSub_DollarName current_libdirs) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName libdir) <' '>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<current_libdirs>}
                                                {(DQ <' '> ($ Id.VSub_DollarName libdir))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  spids: [20277 20294]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Case
                                  case_kw: <Id.KW_Case case>
                                  to_match: 
                                    (case_arg.Word
                                      w: {(DQ ($ Id.VSub_DollarName future_libdirs) <' '>)}
                                    )
                                  arms_start: <Id.KW_In in>
                                  arms: [
                                    (CaseArm
                                      left: <Id.Lit_Star '*'>
                                      pattern: 
                                        (pat.Words
                                          words: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <' '> ($ Id.VSub_DollarName libdir) <' '>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                        )
                                      middle: <Id.Right_CasePat _>
                                      action: []
                                      right: <Id.Op_DSemi _>
                                    )
                                    (CaseArm
                                      left: <Id.Lit_Star '*'>
                                      pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.Simple
                                          blame_tok: <func_append>
                                          more_env: []
                                          words: [
                                            {<func_append>}
                                            {<future_libdirs>}
                                            {(DQ <' '> ($ Id.VSub_DollarName libdir))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                  ]
                                  arms_end: <Id.KW_Esac esac>
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_dirname>
                              more_env: []
                              words: [{<func_dirname>} {(DQ ($ Id.VSub_DollarName file))} {(DQ <'/'>)} {(DQ )}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'dir='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dir='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_dirname_result)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [{<func_append>} {<dir>} {(DQ ($ Id.VSub_DollarName objdir))}]
                              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>}
                                                {<-n>}
                                                {(DQ ($ Id.VSub_DollarName relink_command))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'inst_prefix_dir='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'inst_prefix_dir='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'inst_prefix_dir='>
                                              name: inst_prefix_dir
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName ECHO)}
                                                          {(DQ ($ Id.VSub_DollarName destdir))}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName SED)}
                                                          {<-e>}
                                                          {
                                                            (DQ <'s%'> ($ Id.VSub_DollarName libdir) 
                                                              <Id.Lit_Dollar '$'> <'%%'>
                                                            )
                                                          }
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {(DQ ($ Id.VSub_DollarName inst_prefix_dir))}
                                            {<Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_DollarName destdir))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <func_fatal_error>
                                          more_env: []
                                          words: [
                                            {<func_fatal_error>}
                                            {
                                              (DQ <'error: cannot install \''> 
                                                ($ Id.VSub_DollarName file) <'\' to a directory not ending in '> ($ Id.VSub_DollarName libdir)
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                    (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>}
                                                        {<-n>}
                                                        {(DQ ($ Id.VSub_DollarName inst_prefix_dir))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'relink_command='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'relink_command='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'relink_command='>
                                                      name: relink_command
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                blame_tok: 
                                                                  <Id.VSub_DollarName '$ECHO'>
                                                                more_env: []
                                                                words: [
                                                                  {($ Id.VSub_DollarName ECHO)}
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
relink_command
                                                                      )
                                                                    )
                                                                  }
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: 
                                                                  <Id.VSub_DollarName '$SED'>
                                                                more_env: []
                                                                words: [
                                                                  {($ Id.VSub_DollarName SED)}
                                                                  {
                                                                    (DQ 
                                                                      <
's%@inst_prefix_dir@%-inst-prefix-dir '
                                                                      > ($ Id.VSub_DollarName inst_prefix_dir) <'%'>
                                                                    )
                                                                  }
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            ]
                                                            ops: [<Id.Op_Pipe _>]
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [20513 20524]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'relink_command='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'relink_command='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'relink_command='>
                                                  name: relink_command
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (CommandSub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (command.Pipeline
                                                        children: [
                                                          (command.Simple
                                                            blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                            more_env: []
                                                            words: [
                                                              {($ Id.VSub_DollarName ECHO)}
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
relink_command
                                                                  )
                                                                )
                                                              }
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                          (command.Simple
                                                            blame_tok: <Id.VSub_DollarName '$SED'>
                                                            more_env: []
                                                            words: [
                                                              {($ Id.VSub_DollarName SED)}
                                                              {(DQ <'s%@inst_prefix_dir@%%'>)}
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        ]
                                                        ops: [<Id.Op_Pipe _>]
                                                      )
                                                    right: <Id.Backtick_Right '`'>
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_warning>
                                      more_env: []
                                      words: [
                                        {<func_warning>}
                                        {(DQ <'relinking \''> ($ Id.VSub_DollarName file) <'\''>)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_show_eval>
                                      more_env: []
                                      words: [
                                        {<func_show_eval>}
                                        {(DQ ($ Id.VSub_DollarName relink_command))}
                                        {(SQ <'func_fatal_error "error: relink '>) 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\\''>
                                            ch: '\''
                                          ) (SQ <'$file'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                                          (SQ <' with the above command before installing it"'>)
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [20416 20427]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <set>
                                  more_env: []
                                  words: [{<set>} {<dummy>} {($ Id.VSub_DollarName library_names)}]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              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>} {<-n>} {(DQ ($ Id.VSub_Number 1))}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'realname='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'realname='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'realname='>
                                              name: realname
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_Number 1)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <shift>
                                      more_env: []
                                      words: [{<shift>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'srcname='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'srcname='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'srcname='>
                                              name: srcname
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName realname)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-n>}
                                            {(DQ ($ Id.VSub_DollarName relink_command))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'srcname='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'srcname='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'srcname='>
                                                  name: srcname
                                                )
                                              op: assign_op.Equal
                                              rhs: {(${ Id.VSub_Name realname) <T>}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                    (command.Simple
                                      blame_tok: <func_show_eval>
                                      more_env: []
                                      words: [
                                        {<func_show_eval>}
                                        {
                                          (DQ ($ Id.VSub_DollarName install_shared_prog) <' '> 
                                            ($ Id.VSub_DollarName dir) <'/'> ($ Id.VSub_DollarName srcname) <' '> ($ Id.VSub_DollarName destdir) <'/'> 
                                            ($ Id.VSub_DollarName realname)
                                          )
                                        }
                                        {(SQ <'exit $?'>)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'tstripme='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'tstripme='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'tstripme='>
                                              name: tstripme
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName stripme)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName host_os)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <cygwin>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<cygwin> <Id.Lit_Star '*'>}
                                                {<mingw> <Id.Lit_Star '*'>}
                                                {<pw32> <Id.Lit_Star '*'>}
                                                {<cegcc> <Id.Lit_Star '*'>}
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName realname)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_Star '*'> <.dll.a>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'tstripme='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'tstripme='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'tstripme='>
                                                              name: tstripme
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <os2>
                                          pattern: (pat.Words words:[{<os2> <Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName realname)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_Star '*'> <_dll.a>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'tstripme='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'tstripme='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'tstripme='>
                                                              name: tstripme
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {(DQ ($ Id.VSub_DollarName tstripme))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {(DQ ($ Id.VSub_DollarName striplib))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_show_eval>
                                              more_env: []
                                              words: [
                                                {<func_show_eval>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName striplib) <' '> 
                                                    ($ Id.VSub_DollarName destdir) <'/'> ($ Id.VSub_DollarName realname)
                                                  )
                                                }
                                                {(SQ <'exit $?'>)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [20784 20805]
                                        )
                                      ]
                                      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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {(DQ ($ Id.VSub_Pound '#'))}
                                                        {<-gt>}
                                                        {<0>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [linkname]
                                              iterable: (for_iter__Args)
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {(DQ ($ Id.VSub_DollarName linkname))}
                                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName realname))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <func_show_eval>
                                                          more_env: []
                                                          words: [
                                                            {<func_show_eval>}
                                                            {
                                                              (DQ <'(cd '> 
                                                                ($ Id.VSub_DollarName destdir) <' && { '> ($ Id.VSub_DollarName LN_S) <' -f '> ($ Id.VSub_DollarName realname) <' '> 
                                                                ($ Id.VSub_DollarName linkname) <' || { '> ($ Id.VSub_DollarName RM) <' '> ($ Id.VSub_DollarName linkname) <' && '> 
                                                                ($ Id.VSub_DollarName LN_S) <' '> ($ Id.VSub_DollarName realname) <' '> ($ Id.VSub_DollarName linkname) <'; }; })'>
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                          ]
                                          spids: [20827 20840]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'lib='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'lib='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'lib='>
                                              name: lib
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName destdir) <'/'> 
                                              ($ Id.VSub_DollarName realname)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_execute_cmds>
                                      more_env: []
                                      words: [
                                        {<func_execute_cmds>}
                                        {(DQ ($ Id.VSub_DollarName postinstall_cmds))}
                                        {(SQ <'exit $?'>)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [20628 20639]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_basename>
                              more_env: []
                              words: [{<func_basename>} {(DQ ($ Id.VSub_DollarName file))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'name='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'name='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name='> name:name)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_basename_result)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'instname='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'instname='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'instname='>
                                      name: instname
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName dir) <'/'> (${ Id.VSub_Name name) <i>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_show_eval>
                              more_env: []
                              words: [
                                {<func_show_eval>}
                                {
                                  (DQ ($ Id.VSub_DollarName install_prog) <' '> 
                                    ($ Id.VSub_DollarName instname) <' '> ($ Id.VSub_DollarName destdir) <'/'> ($ Id.VSub_DollarName name)
                                  )
                                }
                                {(SQ <'exit $?'>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName old_library))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_append>
                                  more_env: []
                                  words: [
                                    {<func_append>}
                                    {<staticlibs>}
                                    {
                                      (DQ <' '> ($ Id.VSub_DollarName dir) <'/'> 
                                        ($ Id.VSub_DollarName old_library)
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.lo>}])
                          middle: <Id.Right_CasePat _>
                          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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-n>}
                                                {(DQ ($ Id.VSub_DollarName destname))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'destfile='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'destfile='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'destfile='>
                                              name: destfile
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName destdir) <'/'> 
                                              ($ Id.VSub_DollarName destname)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [21027 21038]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <func_basename>
                                  more_env: []
                                  words: [{<func_basename>} {(DQ ($ Id.VSub_DollarName file))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'destfile='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'destfile='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'destfile='>
                                          name: destfile
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName func_basename_result)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'destfile='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'destfile='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'destfile='>
                                          name: destfile
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName destdir) <'/'> 
                                          ($ Id.VSub_DollarName destfile)
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName destfile)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.lo>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_lo2o>
                                      more_env: []
                                      words: [{<func_lo2o>} {(DQ ($ Id.VSub_DollarName destfile))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'staticdest='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'staticdest='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'staticdest='>
                                              name: staticdest
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_lo2o_result)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [{<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName objext)}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'staticdest='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'staticdest='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'staticdest='>
                                              name: staticdest
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName destfile)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'destfile='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'destfile='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'destfile='>
                                              name: destfile
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_fatal_help>
                                      more_env: []
                                      words: [
                                        {<func_fatal_help>}
                                        {
                                          (DQ <'cannot copy a libtool object to \''> 
                                            ($ Id.VSub_DollarName destfile) <'\''>
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName destfile))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_show_eval>
                                  more_env: []
                                  words: [
                                    {<func_show_eval>}
                                    {
                                      (DQ ($ Id.VSub_DollarName install_prog) <' '> 
                                        ($ Id.VSub_DollarName file) <' '> ($ Id.VSub_DollarName destfile)
                                      )
                                    }
                                    {(SQ <'exit $?'>)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                            (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>}
                                                {<yes>}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName build_old_libs))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_lo2o>
                                      more_env: []
                                      words: [{<func_lo2o>} {(DQ ($ Id.VSub_DollarName file))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'staticobj='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'staticobj='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'staticobj='>
                                              name: staticobj
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_lo2o_result)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_show_eval>
                                      more_env: []
                                      words: [
                                        {<func_show_eval>}
                                        {
                                          (DQ ($ Id.VSub_DollarName install_prog) <' '> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\$'>
                                              ch: '$'
                                            ) <'staticobj '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <staticdest>
                                          )
                                        }
                                        {(SQ <'exit $?'>)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [21173 21186]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-n>}
                                                {(DQ ($ Id.VSub_DollarName destname))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'destfile='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'destfile='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'destfile='>
                                              name: destfile
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName destdir) <'/'> 
                                              ($ Id.VSub_DollarName destname)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [21240 21251]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <func_basename>
                                  more_env: []
                                  words: [{<func_basename>} {(DQ ($ Id.VSub_DollarName file))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'destfile='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'destfile='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'destfile='>
                                          name: destfile
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName func_basename_result)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'destfile='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'destfile='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'destfile='>
                                          name: destfile
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName destdir) <'/'> 
                                          ($ Id.VSub_DollarName destfile)
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'stripped_ext='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'stripped_ext='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'stripped_ext='>
                                      name: stripped_ext
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName file)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.exe>}])
                                  middle: <Id.Right_CasePat _>
                                  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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<Id.KW_Bang '!'>}
                                                        {<-f>}
                                                        {(DQ ($ Id.VSub_DollarName file))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_stripname>
                                              more_env: []
                                              words: [
                                                {<func_stripname>}
                                                {(SQ )}
                                                {(SQ <.exe>)}
                                                {(DQ ($ Id.VSub_DollarName file))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'file='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'file='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'file='>
                                                      name: file
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'stripped_ext='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'stripped_ext='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'stripped_ext='>
                                                      name: stripped_ext
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<.exe>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [21311 21324]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}
                                        {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  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: <func_ltwrapper_executable_p>
                                                      more_env: []
                                                      words: [
                                                        {<func_ltwrapper_executable_p>}
                                                        {(DQ ($ Id.VSub_DollarName file))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_ltwrapper_scriptname>
                                              more_env: []
                                              words: [
                                                {<func_ltwrapper_scriptname>}
                                                {(DQ ($ Id.VSub_DollarName file))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'wrapper='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'wrapper='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'wrapper='>
                                                      name: wrapper
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      ($ Id.VSub_DollarName 
func_ltwrapper_scriptname_result
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [21382 21391]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <func_stripname>
                                          more_env: []
                                          words: [
                                            {<func_stripname>}
                                            {(SQ )}
                                            {(SQ <.exe>)}
                                            {(DQ ($ Id.VSub_DollarName file))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'wrapper='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'wrapper='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'wrapper='>
                                                  name: wrapper
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'wrapper='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'wrapper='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'wrapper='>
                                              name: wrapper
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName file)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              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: <func_ltwrapper_script_p>
                                              more_env: []
                                              words: [
                                                {<func_ltwrapper_script_p>}
                                                {(DQ ($ Id.VSub_DollarName wrapper))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'notinst_deplibs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'notinst_deplibs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'notinst_deplibs='>
                                              name: notinst_deplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'relink_command='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'relink_command='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'relink_command='>
                                              name: relink_command
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_source>
                                      more_env: []
                                      words: [{<func_source>} {(DQ ($ Id.VSub_DollarName wrapper))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-z>}
                                            {(DQ ($ Id.VSub_DollarName generated_by_libtool_version))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <func_fatal_error>
                                          more_env: []
                                          words: [
                                            {<func_fatal_error>}
                                            {
                                              (DQ <'invalid libtool wrapper script \''> 
                                                ($ Id.VSub_DollarName wrapper) <'\''>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'finalize='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'finalize='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'finalize='>
                                              name: finalize
                                            )
                                          op: assign_op.Equal
                                          rhs: {<Id.Lit_Colon ':'>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [lib]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName notinst_deplibs)}]
                                        )
                                      semi_tok: <Id.Op_Semi _>
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'libdir='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'libdir='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'libdir='>
                                                      name: libdir
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-f>}
                                                                {(DQ ($ Id.VSub_DollarName lib))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_source>
                                                      more_env: []
                                                      words: [
                                                        {<func_source>}
                                                        {(DQ ($ Id.VSub_DollarName lib))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [21522 21533]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'libfile='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'libfile='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'libfile='>
                                                      name: libfile
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName libdir) <'/'> 
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                blame_tok: 
                                                                  <Id.VSub_DollarName '$ECHO'>
                                                                more_env: []
                                                                words: [
                                                                  {($ Id.VSub_DollarName ECHO)}
                                                                  {(DQ ($ Id.VSub_DollarName lib))}
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: 
                                                                  <Id.VSub_DollarName '$SED'>
                                                                more_env: []
                                                                words: [
                                                                  {($ Id.VSub_DollarName SED)}
                                                                  {(SQ <'s%^.*/%%g'>)}
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            ]
                                                            ops: [<Id.Op_Pipe _>]
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.AndOr
                                                              children: [
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<-n>}
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName libdir)
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<Id.KW_Bang '!'>}
                                                                    {<-f>}
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName libfile)
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              ops: [<Id.Op_DAmp _>]
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_warning>
                                                      more_env: []
                                                      words: [
                                                        {<func_warning>}
                                                        {
                                                          (DQ <'\''> ($ Id.VSub_DollarName lib) 
                                                            <'\' has not been installed in \''> ($ Id.VSub_DollarName libdir) <'\''>
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'finalize='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'finalize='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'finalize='>
                                                              name: finalize
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<false>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [21568 21591]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'relink_command='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'relink_command='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'relink_command='>
                                              name: relink_command
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_source>
                                      more_env: []
                                      words: [{<func_source>} {(DQ ($ Id.VSub_DollarName wrapper))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'outputname='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'outputname='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'outputname='>
                                              name: outputname
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<no>}
                                                            {<Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName fast_install))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName relink_command)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                                  more_env: []
                                                  words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (BraceGroup
                                                  left: <Id.Lit_LBrace '{'>
                                                  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.VSub_DollarName 
'$finalize'
                                                                        >
                                                                      more_env: []
                                                                      words: [
                                                                        {
                                                                          ($ Id.VSub_DollarName 
finalize
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'tmpdir='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'tmpdir='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'tmpdir='>
                                                                      name: tmpdir
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.Simple
                                                                            blame_tok: 
                                                                              <func_mktempdir>
                                                                            more_env: []
                                                                            words: [{<func_mktempdir>}]
                                                                            redirects: []
                                                                            do_fork: T
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <func_basename>
                                                              more_env: []
                                                              words: [
                                                                {<func_basename>}
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName file) 
                                                                    ($ Id.VSub_DollarName 
stripped_ext
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'file='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'file='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'file='>
                                                                      name: file
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
func_basename_result
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'outputname='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 'outputname='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'outputname='
                                                                        >
                                                                      name: outputname
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {($ Id.VSub_DollarName tmpdir) 
                                                                      <'/'> ($ Id.VSub_DollarName file)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: 
                                                                <Id.Lit_VarLike 'relink_command='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'relink_command='
                                                                    >
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'relink_command='
                                                                        >
                                                                      name: relink_command
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.Pipeline
                                                                            children: [
                                                                              (command.Simple
                                                                                blame_tok: 
                                                                                  <
Id.VSub_DollarName '$ECHO'
                                                                                  >
                                                                                more_env: []
                                                                                words: [
                                                                                  {
                                                                                    ($ 
Id.VSub_DollarName ECHO
                                                                                    )
                                                                                  }
                                                                                  {
                                                                                    (DQ 
                                                                                      ($ 
Id.VSub_DollarName relink_command
                                                                                      )
                                                                                    )
                                                                                  }
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                              (command.Simple
                                                                                blame_tok: 
                                                                                  <
Id.VSub_DollarName '$SED'
                                                                                  >
                                                                                more_env: []
                                                                                words: [
                                                                                  {
                                                                                    ($ 
Id.VSub_DollarName SED
                                                                                    )
                                                                                  }
                                                                                  {
                                                                                    (SQ 
                                                                                      <
's%@OUTPUT@%'
                                                                                      >
                                                                                    ) (DQ ($ Id.VSub_DollarName outputname)) (SQ <'%g'>)
                                                                                  }
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                            ]
                                                                            ops: [<Id.Op_Pipe _>]
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.AndOr
                                                              children: [
                                                                (command.Simple
                                                                  blame_tok: 
                                                                    <Id.VSub_DollarName '$opt_quiet'>
                                                                  more_env: []
                                                                  words: [
                                                                    {
                                                                      ($ Id.VSub_DollarName opt_quiet)
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (BraceGroup
                                                                  left: <Id.Lit_LBrace '{'>
                                                                  children: [
                                                                    (command.Simple
                                                                      blame_tok: 
                                                                        <func_quote_for_expand>
                                                                      more_env: []
                                                                      words: [
                                                                        {<func_quote_for_expand>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
relink_command
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <eval>
                                                                      more_env: []
                                                                      words: [
                                                                        {<eval>}
                                                                        {
                                                                          (DQ <'func_echo '> 
                                                                            ($ Id.VSub_DollarName 
func_quote_for_expand_result
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                  right: <Id.Lit_RBrace '}'>
                                                                )
                                                              ]
                                                              ops: [<Id.Op_DPipe _>]
                                                            )
                                                            (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: <eval>
                                                                              more_env: []
                                                                              words: [
                                                                                {<eval>}
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName relink_command
                                                                                    )
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <Id.Lit_Colon ':'>
                                                                      more_env: []
                                                                      words: [{<Id.Lit_Colon ':'>}]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  spids: [21753 21762]
                                                                )
                                                              ]
                                                              else_kw: <Id.KW_Else else>
                                                              else_action: [
                                                                (command.Simple
                                                                  blame_tok: <func_error>
                                                                  more_env: []
                                                                  words: [
                                                                    {<func_error>}
                                                                    {
                                                                      (DQ <'error: relink \''> 
                                                                        ($ Id.VSub_DollarName file) <'\' with the above command before installing it'>
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.AndOr
                                                                  children: [
                                                                    (command.Simple
                                                                      blame_tok: 
                                                                        <Id.VSub_DollarName 
'$opt_dry_run'
                                                                        >
                                                                      more_env: []
                                                                      words: [
                                                                        {
                                                                          ($ Id.VSub_DollarName 
opt_dry_run
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: 
                                                                        <Id.Left_DollarBrace '${'>
                                                                      more_env: []
                                                                      words: [
                                                                        {(${ Id.VSub_Name RM) <r>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
tmpdir
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  ops: [<Id.Op_DPipe _>]
                                                                )
                                                                (command.ControlFlow
                                                                  keyword: 
                                                                    <Id.ControlFlow_Continue 
continue
                                                                    >
                                                                )
                                                              ]
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'file='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'file='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'file='>
                                                                      name: file
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
outputname
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [21663 21668]
                                                        )
                                                      ]
                                                      else_kw: <Id.KW_Else else>
                                                      else_action: [
                                                        (command.Simple
                                                          blame_tok: <func_warning>
                                                          more_env: []
                                                          words: [
                                                            {<func_warning>}
                                                            {
                                                              (DQ <'cannot relink \''> 
                                                                ($ Id.VSub_DollarName file) <'\''>
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  redirects: []
                                                  right: <Id.Lit_RBrace '}'>
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                          ]
                                          spids: [21630 21653]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'file='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'file='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'file='>
                                                  name: file
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (CommandSub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (command.Pipeline
                                                        children: [
                                                          (command.Simple
                                                            blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                            more_env: []
                                                            words: [
                                                              {($ Id.VSub_DollarName ECHO)}
                                                              {
                                                                (DQ ($ Id.VSub_DollarName file) 
                                                                  ($ Id.VSub_DollarName stripped_ext)
                                                                )
                                                              }
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                          (command.Simple
                                                            blame_tok: <Id.VSub_DollarName '$SED'>
                                                            more_env: []
                                                            words: [
                                                              {($ Id.VSub_DollarName SED)}
                                                              {
                                                                (DQ <'s%'> <Id.Lit_BadBackslash '\\'> 
                                                                  <'([^/]*'> <Id.Lit_BadBackslash '\\'> <')'> <Id.Lit_Dollar '$'> <'%'> ($ Id.VSub_DollarName objdir) <'/'> 
                                                                  <Id.Lit_BadBackslash '\\'> <'1%'>
                                                                )
                                                              }
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        ]
                                                        ops: [<Id.Op_Pipe _>]
                                                      )
                                                    right: <Id.Backtick_Right '`'>
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [21446 21455]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: 
                                    {($ Id.VSub_DollarName install_prog) <Id.Lit_Comma ','> 
                                      ($ Id.VSub_DollarName host)
                                    }
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> <'/usr/bin/install'> <Id.Lit_Star '*'> 
                                          <Id.Lit_Comma ','> <Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {($ Id.VSub_DollarName file) <Id.Lit_Colon ':'> 
                                              ($ Id.VSub_DollarName destfile)
                                            }
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <.exe> <Id.Lit_Colon ':'> 
                                                  <Id.Lit_Star '*'> <.exe>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <.exe> <Id.Lit_Colon ':'> 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'destfile='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'destfile='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'destfile='>
                                                      name: destfile
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName destfile) <.exe>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> 
                                                  <Id.Lit_Star '*'> <.exe>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_stripname>
                                              more_env: []
                                              words: [
                                                {<func_stripname>}
                                                {(SQ )}
                                                {(SQ <.exe>)}
                                                {(DQ ($ Id.VSub_DollarName destfile))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'destfile='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'destfile='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'destfile='>
                                                      name: destfile
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_show_eval>
                              more_env: []
                              words: [
                                {<func_show_eval>}
                                {
                                  (DQ ($ Id.VSub_DollarName install_prog) 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'stripme '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'file '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <destfile>
                                  )
                                }
                                {(SQ <'exit $?'>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                  more_env: []
                                  words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                  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>}
                                                    {<-n>}
                                                    {(DQ ($ Id.VSub_DollarName outputname))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.Simple
                                          blame_tok: <Id.Left_DollarBrace '${'>
                                          more_env: []
                                          words: [
                                            {(${ Id.VSub_Name RM) <r>}
                                            {(DQ ($ Id.VSub_DollarName tmpdir))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      spids: [21996 22007]
                                    )
                                  ]
                                  else_action: []
                                  fi_kw: <Id.KW_Fi fi>
                                  redirects: []
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [file]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName staticlibs)}])
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <func_basename>
                      more_env: []
                      words: [{<func_basename>} {(DQ ($ Id.VSub_DollarName file))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'name='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'name='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name='> name:name)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_basename_result)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'oldlib='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'oldlib='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldlib='> name:oldlib)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName destdir) <'/'> ($ Id.VSub_DollarName name)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_to_tool_file>
                      more_env: []
                      words: [
                        {<func_to_tool_file>}
                        {(DQ ($ Id.VSub_DollarName oldlib))}
                        {<func_convert_file_msys_to_w32>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'tool_oldlib='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'tool_oldlib='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'tool_oldlib='>
                              name: tool_oldlib
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_to_tool_file_result)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_show_eval>
                      more_env: []
                      words: [
                        {<func_show_eval>}
                        {
                          (DQ ($ Id.VSub_DollarName install_prog) <' '> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'file '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <oldlib>
                          )
                        }
                        {(SQ <'exit $?'>)}
                      ]
                      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.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName stripme))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-n>}
                                            {(DQ ($ Id.VSub_DollarName old_striplib))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <func_show_eval>
                              more_env: []
                              words: [
                                {<func_show_eval>}
                                {
                                  (DQ ($ Id.VSub_DollarName old_striplib) <' '> 
                                    ($ Id.VSub_DollarName tool_oldlib)
                                  )
                                }
                                {(SQ <'exit $?'>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [22098 22119]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_execute_cmds>
                      more_env: []
                      words: [
                        {<func_execute_cmds>}
                        {(DQ ($ Id.VSub_DollarName old_postinstall_cmds))}
                        {(SQ <'exit $?'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName future_libdirs))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <func_warning>
                  more_env: []
                  words: [
                    {<func_warning>}
                    {
                      (DQ <'remember to run \''> ($ Id.VSub_DollarName progname) <' --finish'> 
                        ($ Id.VSub_DollarName future_libdirs) <'\''>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (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>} {<-n>} {(DQ ($ Id.VSub_DollarName current_libdirs))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                          more_env: []
                          words: [{($ Id.VSub_DollarName opt_dry_run)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'current_libdirs='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'current_libdirs='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'current_libdirs='>
                                  name: current_libdirs
                                )
                              op: assign_op.Equal
                              rhs: {(DQ <' -n'> ($ Id.VSub_DollarName current_libdirs))}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'exec_cmd='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'exec_cmd='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exec_cmd='> name:exec_cmd)
                          op: assign_op.Equal
                          rhs: {(SQ <'$SHELL "$progpath" $preserve_args --finish$current_libdirs'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [22182 22193]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ControlFlow
                  keyword: <Id.ControlFlow_Exit exit>
                  arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<install>} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName opt_mode))}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <func_mode_install>
          more_env: []
          words: [
            {<func_mode_install>}
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Number 1>
                var_name: 1
                suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
                right: <Id.Right_DollarBrace '}'>
              )
            }
          ]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.ShFunction
      name_tok: <func_generate_dlsyms>
      name: func_generate_dlsyms
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'my_outputname='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'my_outputname='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_outputname='> name:my_outputname)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'my_originator='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'my_originator='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_originator='> name:my_originator)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'my_pic_p='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'my_pic_p='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_pic_p='> name:my_pic_p)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Number 3>
                        var_name: 3
                        suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<false>})
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'my_prefix='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'my_prefix='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_prefix='> name:my_prefix)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                more_env: []
                                words: [
                                  {($ Id.VSub_DollarName ECHO)}
                                  {(DQ ($ Id.VSub_DollarName my_originator))}
                                ]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <Id.VSub_DollarName '$SED'>
                                more_env: []
                                words: [{($ Id.VSub_DollarName SED)} {(SQ <'s%[^a-zA-Z0-9]%_%g'>)}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'my_dlsyms='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'my_dlsyms='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_dlsyms='> name:my_dlsyms)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<-n>}
                                    {
                                      (DQ ($ Id.VSub_DollarName dlfiles) 
                                        ($ Id.VSub_DollarName dlprefiles)
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<no>}
                                    {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                    {(DQ ($ Id.VSub_DollarName dlself))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                          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.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName NM))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-n>}
                                            {(DQ ($ Id.VSub_DollarName global_symbol_pipe))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'my_dlsyms='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'my_dlsyms='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'my_dlsyms='>
                                      name: my_dlsyms
                                    )
                                  op: assign_op.Equal
                                  rhs: {(${ Id.VSub_Name my_outputname) <S.c>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [22343 22364]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <func_error>
                          more_env: []
                          words: [
                            {<func_error>}
                            {(DQ <'not configured to extract global symbols from dlpreopened files'>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [22315 22340]
                )
              ]
              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: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName my_dlsyms))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName my_dlsyms)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_DoubleQuote '"'>
                          pattern: (pat.Words words:[{(DQ )}])
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.c>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'nlist='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'nlist='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nlist='> name:nlist)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName output_objdir) <'/'> 
                                      ($ Id.VSub_DollarName my_outputname) <.nm>
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_show_eval>
                              more_env: []
                              words: [
                                {<func_show_eval>}
                                {
                                  (DQ ($ Id.VSub_DollarName RM) <' '> ($ Id.VSub_DollarName nlist) <' '> 
                                    (${ Id.VSub_Name nlist) <'S '> (${ Id.VSub_Name nlist) <T>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <func_verbose>
                              more_env: []
                              words: [
                                {<func_verbose>}
                                {
                                  (DQ <'creating '> ($ Id.VSub_DollarName output_objdir) <'/'> 
                                    ($ Id.VSub_DollarName my_dlsyms)
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                  more_env: []
                                  words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$ECHO'>
                                  more_env: []
                                  words: [
                                    {($ Id.VSub_DollarName ECHO)}
                                    {
                                      (DQ <'/* '> ($ Id.VSub_DollarName my_dlsyms) 
                                        <' - symbol resolution table for \''> ($ Id.VSub_DollarName my_outputname) <'\' dlsym emulation. */\n'> <'/* Generated by '> 
                                        ($ Id.VSub_DollarName PROGRAM) <' (GNU '> ($ Id.VSub_DollarName PACKAGE) <') '> ($ Id.VSub_DollarName VERSION) <' */\n'> <'\n'> 
                                        <'#ifdef __cplusplus\n'> <'extern '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <C> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        ) <' {\n'> <'#endif\n'> <'\n'> 
                                        <
'#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))\n'
                                        > <'#pragma GCC diagnostic ignored '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                        <-Wstrict-prototypes> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'> <'#endif\n'> <'\n'> 
                                        <
'/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */\n'
                                        > <'#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE\n'> 
                                        <
'/* DATA imports from DLLs on WIN32 can\'t be const, because runtime\n'
                                        > <'   relocations are performed -- see ld\'s documentation on pseudo-relocs.  */\n'> 
                                        <'# define LT_DLSYM_CONST\n'> <'#elif defined __osf__\n'> 
                                        <
'/* This system does not cope well with relocations in const data.  */\n'
                                        > <'# define LT_DLSYM_CONST\n'> <'#else\n'> <'# define LT_DLSYM_CONST const\n'> <'#endif\n'> <'\n'> 
                                        <'#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)\n'> <'\n'> <'/* External symbol declarations for the compiler. */'>
                                      )
                                    }
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: 
                                        {
                                          (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                            ($ Id.VSub_DollarName my_dlsyms)
                                          )
                                        }
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                            (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>}
                                                {<yes>}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName dlself))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_verbose>
                                      more_env: []
                                      words: [
                                        {<func_verbose>}
                                        {
                                          (DQ <'generating symbol list for \''> 
                                            ($ Id.VSub_DollarName output) <'\''>
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                          more_env: []
                                          words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [{<echo>} {(SQ <': @PROGRAM@ '>)}]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {(DQ ($ Id.VSub_DollarName nlist))}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'progfiles='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'progfiles='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'progfiles='>
                                              name: progfiles
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName ECHO)}
                                                          {
                                                            (DQ ($ Id.VSub_DollarName objs) 
                                                              ($ Id.VSub_DollarName old_deplibs)
                                                            )
                                                          }
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$SP2NL'>
                                                        more_env: []
                                                        words: [{($ Id.VSub_DollarName SP2NL)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName SED)}
                                                          {(DQ ($ Id.VSub_DollarName lo2o))}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$NL2SP'>
                                                        more_env: []
                                                        words: [{($ Id.VSub_DollarName NL2SP)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [progfile]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName progfiles)}]
                                        )
                                      semi_tok: <Id.Op_Semi _>
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.Simple
                                              blame_tok: <func_to_tool_file>
                                              more_env: []
                                              words: [
                                                {<func_to_tool_file>}
                                                {(DQ ($ Id.VSub_DollarName progfile))}
                                                {<func_convert_file_msys_to_w32>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <func_verbose>
                                              more_env: []
                                              words: [
                                                {<func_verbose>}
                                                {
                                                  (DQ <'extracting global C symbols from \''> 
                                                    ($ Id.VSub_DollarName func_to_tool_file_result) <'\''>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                                  more_env: []
                                                  words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <eval>
                                                  more_env: []
                                                  words: [
                                                    {<eval>}
                                                    {
                                                      (DQ ($ Id.VSub_DollarName NM) <' '> 
                                                        ($ Id.VSub_DollarName 
func_to_tool_file_result
                                                        ) <' | '> ($ Id.VSub_DollarName global_symbol_pipe) <' >> \''> ($ Id.VSub_DollarName nlist) <'\''>
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-n>}
                                                        {(DQ ($ Id.VSub_DollarName exclude_expsyms))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                                  more_env: []
                                                  words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (BraceGroup
                                                  left: <Id.Lit_LBrace '{'>
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [
                                                        {<eval>}
                                                        {
                                                          (SQ 
                                                            <
'$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
                                                            >
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [{<eval>} {(SQ <'$MV "$nlist"T "$nlist"'>)}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  redirects: []
                                                  right: <Id.Lit_RBrace '}'>
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                          ]
                                          spids: [22664 22675]
                                        )
                                      ]
                                      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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-n>}
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
export_symbols_regex
                                                            )
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                                  more_env: []
                                                  words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (BraceGroup
                                                  left: <Id.Lit_LBrace '{'>
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [
                                                        {<eval>}
                                                        {
                                                          (SQ 
                                                            <
'$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
                                                            >
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [{<eval>} {(SQ <'$MV "$nlist"T "$nlist"'>)}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  redirects: []
                                                  right: <Id.Lit_RBrace '}'>
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                          ]
                                          spids: [22706 22717]
                                        )
                                      ]
                                      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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-z>}
                                                        {(DQ ($ Id.VSub_DollarName export_symbols))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'export_symbols='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'export_symbols='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'export_symbols='>
                                                      name: export_symbols
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName output_objdir) <'/'> 
                                                      ($ Id.VSub_DollarName outputname) <.exp>
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                                  more_env: []
                                                  words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (BraceGroup
                                                  left: <Id.Lit_LBrace '{'>
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <Id.VSub_DollarName '$RM'>
                                                      more_env: []
                                                      words: [
                                                        {($ Id.VSub_DollarName RM)}
                                                        {($ Id.VSub_DollarName export_symbols)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [
                                                        {<eval>}
                                                        {
                                                          (DQ ($ Id.VSub_DollarName SED) 
                                                            <' -n -e \'/^: @PROGRAM@ '> <Id.Lit_Dollar '$'> <'/d\' -e \'s/^.* '> <Id.Lit_BadBackslash '\\'> <'(.*'> <Id.Lit_BadBackslash '\\'> 
                                                            <')'> <Id.Lit_Dollar '$'> <'/'> <Id.Lit_BadBackslash '\\'> <'1/p\' '>
                                                          ) (SQ <'< "$nlist" > "$export_symbols"'>)
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName host)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> <cygwin> 
                                                                  <Id.Lit_Star '*'>
                                                                }
                                                                {<Id.Lit_Star '*'> <mingw> 
                                                                  <Id.Lit_Star '*'>
                                                                }
                                                                {<Id.Lit_Star '*'> <cegcc> 
                                                                  <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [
                                                                {<eval>}
                                                                {(DQ <'echo EXPORTS '>) 
                                                                  (SQ 
                                                                    <
'> "$output_objdir/$outputname.def"'
                                                                    >
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [
                                                                {<eval>}
                                                                {
                                                                  (SQ 
                                                                    <
'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
                                                                    >
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  redirects: []
                                                  right: <Id.Lit_RBrace '}'>
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                          ]
                                          spids: [22752 22763]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.AndOr
                                          children: [
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                              more_env: []
                                              words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (BraceGroup
                                              left: <Id.Lit_LBrace '{'>
                                              children: [
                                                (command.Simple
                                                  blame_tok: <eval>
                                                  more_env: []
                                                  words: [
                                                    {<eval>}
                                                    {
                                                      (DQ ($ Id.VSub_DollarName SED) <' -e \'s/'> 
                                                        <Id.Lit_BadBackslash '\\'> <'([].[*^'> <Id.Lit_Dollar '$'> <']'> <Id.Lit_BadBackslash '\\'> <')/'> 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\\\'>
                                                          ch: '\\'
                                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <Id.Lit_BadBackslash '\\'> 
                                                        <'1/g\' -e \'s/^/ /\' -e \'s/'> <Id.Lit_Dollar '$'> <'/'> <Id.Lit_Dollar '$'> <'/\''>
                                                      ) (SQ <' < "$export_symbols" > "$output_objdir/$outputname.exp"'>)
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <eval>
                                                  more_env: []
                                                  words: [
                                                    {<eval>}
                                                    {
                                                      (SQ 
                                                        <
'$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
                                                        >
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <eval>
                                                  more_env: []
                                                  words: [{<eval>} {(SQ <'$MV "$nlist"T "$nlist"'>)}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: 
                                                    (case_arg.Word
                                                      w: {($ Id.VSub_DollarName host)}
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <Id.Lit_Star '*'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [
                                                            {<Id.Lit_Star '*'> <cygwin> 
                                                              <Id.Lit_Star '*'>
                                                            }
                                                            {<Id.Lit_Star '*'> <mingw> 
                                                              <Id.Lit_Star '*'>
                                                            }
                                                            {<Id.Lit_Star '*'> <cegcc> 
                                                              <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <eval>
                                                          more_env: []
                                                          words: [
                                                            {<eval>}
                                                            {(DQ <'echo EXPORTS '>) 
                                                              (SQ 
                                                                <
'> "$output_objdir/$outputname.def"'
                                                                >
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <eval>
                                                          more_env: []
                                                          words: [
                                                            {<eval>}
                                                            {
                                                              (SQ 
                                                                <
'cat "$nlist" >> "$output_objdir/$outputname.def"'
                                                                >
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                              ]
                                              redirects: []
                                              right: <Id.Lit_RBrace '}'>
                                            )
                                          ]
                                          ops: [<Id.Op_DPipe _>]
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [22535 22548]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [dlprefile]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName dlprefiles)}])
                              semi_tok: <Id.Op_Semi _>
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Simple
                                      blame_tok: <func_verbose>
                                      more_env: []
                                      words: [
                                        {<func_verbose>}
                                        {
                                          (DQ <'extracting global C symbols from \''> 
                                            ($ Id.VSub_DollarName dlprefile) <'\''>
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_basename>
                                      more_env: []
                                      words: [{<func_basename>} {(DQ ($ Id.VSub_DollarName dlprefile))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'name='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'name='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'name='>
                                              name: name
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_basename_result)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}
                                                {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}
                                                {<Id.Lit_Star '*'> <cegcc> <Id.Lit_Star '*'>}
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          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: <func_win32_import_lib_p>
                                                              more_env: []
                                                              words: [
                                                                {<func_win32_import_lib_p>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName dlprefile)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_tr_sh>
                                                      more_env: []
                                                      words: [
                                                        {<func_tr_sh>}
                                                        {(DQ ($ Id.VSub_DollarName dlprefile))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [
                                                        {<eval>}
                                                        {
                                                          (DQ <'curr_lafile='> 
                                                            (word_part.EscapedLiteral
                                                              token: <Id.Lit_EscapedChar '\\$'>
                                                              ch: '$'
                                                            ) <libfile_> ($ Id.VSub_DollarName func_tr_sh_result)
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'dlprefile_dlbasename='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: 
                                                            <Id.Lit_VarLike 'dlprefile_dlbasename='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 
'dlprefile_dlbasename='
                                                                >
                                                              name: dlprefile_dlbasename
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (command.AndOr
                                                                      children: [
                                                                        (command.Simple
                                                                          blame_tok: <test>
                                                                          more_env: []
                                                                          words: [
                                                                            {<test>}
                                                                            {<-n>}
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName curr_lafile
                                                                                )
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                        (command.Simple
                                                                          blame_tok: <func_lalib_p>
                                                                          more_env: []
                                                                          words: [
                                                                            {<func_lalib_p>}
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName curr_lafile
                                                                                )
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                      ]
                                                                      ops: [<Id.Op_DAmp _>]
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: 
                                                                <Id.Lit_VarLike 'dlprefile_dlname='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'dlprefile_dlname='
                                                                    >
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'dlprefile_dlname='
                                                                        >
                                                                      name: dlprefile_dlname
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.AndOr
                                                                            children: [
                                                                              (command.Simple
                                                                                blame_tok: <source>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<source>}
                                                                                  {
                                                                                    (DQ 
                                                                                      ($ 
Id.VSub_DollarName curr_lafile
                                                                                      )
                                                                                    )
                                                                                  }
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                              (command.Simple
                                                                                blame_tok: <echo>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<echo>}
                                                                                  {
                                                                                    (DQ 
                                                                                      ($ 
Id.VSub_DollarName dlname
                                                                                      )
                                                                                    )
                                                                                  }
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                            ]
                                                                            ops: [<Id.Op_DAmp _>]
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              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: <test>
                                                                              more_env: []
                                                                              words: [
                                                                                {<test>}
                                                                                {<-n>}
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName dlprefile_dlname
                                                                                    )
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <func_basename>
                                                                      more_env: []
                                                                      words: [
                                                                        {<func_basename>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
dlprefile_dlname
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'dlprefile_dlbasename='
                                                                        >
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'dlprefile_dlbasename='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'dlprefile_dlbasename='
                                                                                >
                                                                              name: 
dlprefile_dlbasename
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
func_basename_result
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [23106 23117]
                                                                )
                                                              ]
                                                              else_kw: <Id.KW_Else else>
                                                              else_action: [
                                                                (command.Simple
                                                                  blame_tok: 
                                                                    <Id.VSub_DollarName 
'$sharedlib_from_linklib_cmd'
                                                                    >
                                                                  more_env: []
                                                                  words: [
                                                                    {
                                                                      ($ Id.VSub_DollarName 
sharedlib_from_linklib_cmd
                                                                      )
                                                                    }
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
dlprefile
                                                                        )
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.ShAssignment
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'dlprefile_dlbasename='
                                                                    >
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'dlprefile_dlbasename='
                                                                        >
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'dlprefile_dlbasename='
                                                                            >
                                                                          name: dlprefile_dlbasename
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
sharedlib_from_linklib_result
                                                                          )
                                                                        }
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                              ]
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [23060 23079]
                                                        )
                                                      ]
                                                      else_action: []
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: 
                                                            <Id.VSub_DollarName '$opt_dry_run'>
                                                          more_env: []
                                                          words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (BraceGroup
                                                          left: <Id.Lit_LBrace '{'>
                                                          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: <test>
                                                                              more_env: []
                                                                              words: [
                                                                                {<test>}
                                                                                {<-n>}
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName dlprefile_dlbasename
                                                                                    )
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <eval>
                                                                      more_env: []
                                                                      words: [
                                                                        {<eval>}
                                                                        {
                                                                          (SQ 
                                                                            <
'$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
                                                                            >
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  spids: [23162 23173]
                                                                )
                                                              ]
                                                              else_kw: <Id.KW_Else else>
                                                              else_action: [
                                                                (command.Simple
                                                                  blame_tok: <func_warning>
                                                                  more_env: []
                                                                  words: [
                                                                    {<func_warning>}
                                                                    {
                                                                      (DQ 
                                                                        <
'Could not compute DLL name from '
                                                                        > ($ Id.VSub_DollarName name)
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.Simple
                                                                  blame_tok: <eval>
                                                                  more_env: []
                                                                  words: [
                                                                    {<eval>}
                                                                    {
                                                                      (SQ 
                                                                        <
'$ECHO ": $name " >> "$nlist"'
                                                                        >
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <func_to_tool_file>
                                                              more_env: []
                                                              words: [
                                                                {<func_to_tool_file>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName dlprefile)
                                                                  )
                                                                }
                                                                {<func_convert_file_msys_to_w32>}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [
                                                                {<eval>}
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName NM) <' '> 
                                                                    (word_part.EscapedLiteral
                                                                      token: 
                                                                        <Id.Lit_EscapedChar '\\"'>
                                                                      ch: '"'
                                                                    ) ($ Id.VSub_DollarName func_to_tool_file_result) 
                                                                    (word_part.EscapedLiteral
                                                                      token: 
                                                                        <Id.Lit_EscapedChar '\\"'>
                                                                      ch: '"'
                                                                    ) <' 2>/dev/null | '> ($ Id.VSub_DollarName global_symbol_pipe) <' |\n'> <'\t            '> 
                                                                    ($ Id.VSub_DollarName SED) <' -e \'/I __imp/d\' -e \'s/I __nm_/D /;s/_nm__//\' >> \''> ($ Id.VSub_DollarName nlist) <'\''>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          redirects: []
                                                          right: <Id.Lit_RBrace '}'>
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DPipe _>]
                                                    )
                                                  ]
                                                  spids: [23028 23037]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.AndOr
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                                      more_env: []
                                                      words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (BraceGroup
                                                      left: <Id.Lit_LBrace '{'>
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <eval>
                                                          more_env: []
                                                          words: [
                                                            {<eval>}
                                                            {(SQ <'$ECHO ": $name " >> "$nlist"'>)}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <func_to_tool_file>
                                                          more_env: []
                                                          words: [
                                                            {<func_to_tool_file>}
                                                            {(DQ ($ Id.VSub_DollarName dlprefile))}
                                                            {<func_convert_file_msys_to_w32>}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <eval>
                                                          more_env: []
                                                          words: [
                                                            {<eval>}
                                                            {
                                                              (DQ ($ Id.VSub_DollarName NM) <' '> 
                                                                (word_part.EscapedLiteral
                                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                                  ch: '"'
                                                                ) ($ Id.VSub_DollarName func_to_tool_file_result) 
                                                                (word_part.EscapedLiteral
                                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                                  ch: '"'
                                                                ) <' 2>/dev/null | '> ($ Id.VSub_DollarName global_symbol_pipe) <' >> \''> ($ Id.VSub_DollarName nlist) 
                                                                <'\''>
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      redirects: []
                                                      right: <Id.Lit_RBrace '}'>
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DPipe _>]
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          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: <Id.VSub_DollarName '$opt_dry_run'>
                                                  more_env: []
                                                  words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (BraceGroup
                                                  left: <Id.Lit_LBrace '{'>
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [
                                                        {<eval>}
                                                        {(SQ <'$ECHO ": $name " >> "$nlist"'>)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <func_to_tool_file>
                                                      more_env: []
                                                      words: [
                                                        {<func_to_tool_file>}
                                                        {(DQ ($ Id.VSub_DollarName dlprefile))}
                                                        {<func_convert_file_msys_to_w32>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [
                                                        {<eval>}
                                                        {
                                                          (DQ ($ Id.VSub_DollarName NM) <' '> 
                                                            (word_part.EscapedLiteral
                                                              token: <Id.Lit_EscapedChar '\\"'>
                                                              ch: '"'
                                                            ) ($ Id.VSub_DollarName func_to_tool_file_result) 
                                                            (word_part.EscapedLiteral
                                                              token: <Id.Lit_EscapedChar '\\"'>
                                                              ch: '"'
                                                            ) <' 2>/dev/null | '> ($ Id.VSub_DollarName global_symbol_pipe) <' >> \''> ($ Id.VSub_DollarName nlist) 
                                                            <'\''>
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  redirects: []
                                                  right: <Id.Lit_RBrace '}'>
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                  more_env: []
                                  words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (BraceGroup
                                  left: <Id.Lit_LBrace '{'>
                                  children: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-f>} {(DQ ($ Id.VSub_DollarName nlist))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <Id.Lit_Colon ':'>
                                          more_env: []
                                          words: [{<Id.Lit_Colon ':'>}]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {(DQ ($ Id.VSub_DollarName nlist))}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (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>}
                                                        {<-n>}
                                                        {(DQ ($ Id.VSub_DollarName exclude_expsyms))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$EGREP'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName EGREP)}
                                                {<-v>}
                                                {
                                                  (DQ <' ('> ($ Id.VSub_DollarName exclude_expsyms) 
                                                    <')'> <Id.Lit_Dollar '$'>
                                                  )
                                                }
                                                {(DQ ($ Id.VSub_DollarName nlist))}
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {(DQ ($ Id.VSub_DollarName nlist)) <T>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$MV'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName MV)}
                                                {(DQ ($ Id.VSub_DollarName nlist)) <T>}
                                                {(DQ ($ Id.VSub_DollarName nlist))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [23376 23387]
                                        )
                                      ]
                                      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.Pipeline
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <Id.VSub_DollarName '$GREP'>
                                                          more_env: []
                                                          words: [
                                                            {($ Id.VSub_DollarName GREP)}
                                                            {<-v>}
                                                            {(DQ <'^: '>)}
                                                          ]
                                                          redirects: [
                                                            (Redir
                                                              op: <Id.Redir_Less '<'>
                                                              loc: (redir_loc.Fd fd:0)
                                                              arg: {(DQ ($ Id.VSub_DollarName nlist))}
                                                            )
                                                          ]
                                                          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: <sort>
                                                                          more_env: []
                                                                          words: [{<sort>} {<-k>} {<3>}]
                                                                          redirects: [
                                                                            (Redir
                                                                              op: <Id.Redir_Less '<'>
                                                                              loc: 
                                                                                (redir_loc.Fd
                                                                                  fd: 0
                                                                                )
                                                                              arg: {<'/dev/null'>}
                                                                            )
                                                                            (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.Simple
                                                                  blame_tok: <sort>
                                                                  more_env: []
                                                                  words: [{<sort>} {<-k>} {<3>}]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              spids: [23452 23470]
                                                            )
                                                          ]
                                                          else_kw: <Id.KW_Else else>
                                                          else_action: [
                                                            (command.Simple
                                                              blame_tok: <sort>
                                                              more_env: []
                                                              words: [{<sort>} {<Id.Lit_Other '+'> <2>}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          fi_kw: <Id.KW_Fi fi>
                                                          redirects: []
                                                        )
                                                        (command.Simple
                                                          blame_tok: <uniq>
                                                          more_env: []
                                                          words: [{<uniq>}]
                                                          redirects: [
                                                            (Redir
                                                              op: <Id.Redir_Great '>'>
                                                              loc: (redir_loc.Fd fd:1)
                                                              arg: 
                                                                {(DQ ($ Id.VSub_DollarName nlist)) 
                                                                  <S>
                                                                }
                                                            )
                                                          ]
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <Id.Lit_Colon ':'>
                                              more_env: []
                                              words: [{<Id.Lit_Colon ':'>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [23433 23504]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$GREP'>
                                          more_env: []
                                          words: [{($ Id.VSub_DollarName GREP)} {<-v>} {(DQ <'^: '>)}]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Less '<'>
                                              loc: (redir_loc.Fd fd:0)
                                              arg: {(DQ ($ Id.VSub_DollarName nlist))}
                                            )
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {(DQ ($ Id.VSub_DollarName nlist)) <S>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                      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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-f>}
                                                        {(DQ ($ Id.VSub_DollarName nlist)) <S>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {(DQ ($ Id.VSub_DollarName global_symbol_to_cdecl)) 
                                                  (SQ <' < "$nlist"S >> "$output_objdir/$my_dlsyms"'>)
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [23539 23551]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [{<echo>} {(SQ <'/* NONE */'>)}]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_DGreat '>>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                                    ($ Id.VSub_DollarName my_dlsyms)
                                                  )
                                                }
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_show_eval>
                                      more_env: []
                                      words: [{<func_show_eval>} {(SQ <'$RM "${nlist}I"'>)}]
                                      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>}
                                                        {<-n>}
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
global_symbol_to_import
                                                            )
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {(DQ ($ Id.VSub_DollarName global_symbol_to_import)) 
                                                  (SQ <' < "$nlist"S > "$nlist"I'>)
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [23593 23604]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ <'\n'> 
                                            <
'/* The mapping between symbol names and symbols.  */\n'
                                            > <'typedef struct {\n'> <'  const char *name;\n'> <'  void *address;\n'> <'} lt_dlsymlist;\n'> 
                                            <'extern LT_DLSYM_CONST lt_dlsymlist\n'> <lt_> (${ Id.VSub_Name my_prefix) <'_LTX_preloaded_symbols[];'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_DGreat '>>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: 
                                            {
                                              (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                                ($ Id.VSub_DollarName my_dlsyms)
                                              )
                                            }
                                        )
                                      ]
                                      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>}
                                                        {<-s>}
                                                        {(DQ ($ Id.VSub_DollarName nlist)) <I>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ <'static void lt_syminit(void)\n'> <'{\n'> 
                                                    <'  LT_DLSYM_CONST lt_dlsymlist *symbol = lt_'> (${ Id.VSub_Name my_prefix) <'_LTX_preloaded_symbols;\n'> <'  for (; symbol->name; ++symbol)\n'> 
                                                    <'    {'>
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_DGreat '>>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                                        ($ Id.VSub_DollarName my_dlsyms)
                                                      )
                                                    }
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$SED'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName SED)}
                                                {
                                                  (SQ 
                                                    <
's/.*/      if (STREQ (symbol->name, \\"&\\")) symbol->address = (void *) \\&&;/'
                                                    >
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Less '<'>
                                                  loc: (redir_loc.Fd fd:0)
                                                  arg: {(DQ ($ Id.VSub_DollarName nlist)) <I>}
                                                )
                                                (Redir
                                                  op: <Id.Redir_DGreat '>>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                                        ($ Id.VSub_DollarName my_dlsyms)
                                                      )
                                                    }
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [{<echo>} {(DQ <'    }\n'> <'}'>)}]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_DGreat '>>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                                        ($ Id.VSub_DollarName my_dlsyms)
                                                      )
                                                    }
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          spids: [23650 23662]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ <'LT_DLSYM_CONST lt_dlsymlist\n'> <lt_> 
                                            (${ Id.VSub_Name my_prefix) <'_LTX_preloaded_symbols[] =\n'> <'{ {'> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            ) ($ Id.VSub_DollarName my_originator) 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            ) <', (void *) 0},'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_DGreat '>>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: 
                                            {
                                              (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                                ($ Id.VSub_DollarName my_dlsyms)
                                              )
                                            }
                                        )
                                      ]
                                      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>}
                                                        {<-s>}
                                                        {(DQ ($ Id.VSub_DollarName nlist)) <I>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ <'  {'> 
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\"'>
                                                      ch: '"'
                                                    ) <'@INIT@'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                    <', (void *) &lt_syminit},'>
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_DGreat '>>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                                        ($ Id.VSub_DollarName my_dlsyms)
                                                      )
                                                    }
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          spids: [23758 23770]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {($ Id.VSub_DollarName need_lib_prefix)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <no>
                                          pattern: (pat.Words words:[{<no>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {
                                                  (DQ 
                                                    ($ Id.VSub_DollarName 
global_symbol_to_c_name_address
                                                    )
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Less '<'>
                                                  loc: (redir_loc.Fd fd:0)
                                                  arg: {(DQ ($ Id.VSub_DollarName nlist))}
                                                )
                                                (Redir
                                                  op: <Id.Redir_DGreat '>>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                                        ($ Id.VSub_DollarName my_dlsyms)
                                                      )
                                                    }
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {
                                                  (DQ 
                                                    ($ Id.VSub_DollarName 
global_symbol_to_c_name_address_lib_prefix
                                                    )
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Less '<'>
                                                  loc: (redir_loc.Fd fd:0)
                                                  arg: {(DQ ($ Id.VSub_DollarName nlist))}
                                                )
                                                (Redir
                                                  op: <Id.Redir_DGreat '>>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                                        ($ Id.VSub_DollarName my_dlsyms)
                                                      )
                                                    }
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ <'  {0, (void *) 0}\n'> <'};\n'> <'\n'> 
                                            <
'/* This works around a problem in FreeBSD linker */\n'
                                            > <'#ifdef FREEBSD_WORKAROUND\n'> <'static const void *lt_preloaded_setup() {\n'> <'  return lt_'> 
                                            (${ Id.VSub_Name my_prefix) <'_LTX_preloaded_symbols;\n'> <'}\n'> <'#endif\n'> <'\n'> <'#ifdef __cplusplus\n'> <'}\n'> <'#endif'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_DGreat '>>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: 
                                            {
                                              (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                                ($ Id.VSub_DollarName my_dlsyms)
                                              )
                                            }
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  redirects: []
                                  right: <Id.Lit_RBrace '}'>
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'pic_flag_for_symtable='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'pic_flag_for_symtable='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'pic_flag_for_symtable='>
                                      name: pic_flag_for_symtable
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: {(DQ ($ Id.VSub_DollarName compile_command) <' '>)}
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [{<Id.Lit_Star '*'> (DQ <' -static '>) <Id.Lit_Star '*'>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-freebsd2.> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-freebsd3.0> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> 
                                                  <-freebsdelf3.0> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'pic_flag_for_symtable='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'pic_flag_for_symtable='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'pic_flag_for_symtable='>
                                                      name: pic_flag_for_symtable
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ <' '> ($ Id.VSub_DollarName pic_flag) 
                                                        <' -DFREEBSD_WORKAROUND'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-hpux> 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'pic_flag_for_symtable='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'pic_flag_for_symtable='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'pic_flag_for_symtable='>
                                                      name: pic_flag_for_symtable
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ <' '> ($ Id.VSub_DollarName pic_flag))}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          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: <Id.VSub_DollarName '$my_pic_p'>
                                                  more_env: []
                                                  words: [{($ Id.VSub_DollarName my_pic_p)}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'pic_flag_for_symtable='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'pic_flag_for_symtable='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: 
                                                            <Id.Lit_VarLike 'pic_flag_for_symtable='>
                                                          name: pic_flag_for_symtable
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {(DQ <' '> ($ Id.VSub_DollarName pic_flag))}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'symtab_cflags='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'symtab_cflags='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'symtab_cflags='>
                                      name: symtab_cflags
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [arg]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName LTCFLAGS)}])
                              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 arg)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <-pie>
                                          pattern: (pat.Words words:[{<-pie>} {<-fpie>} {<-fPIE>}])
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<symtab_cflags>}
                                                {(DQ <' '> ($ Id.VSub_DollarName arg))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_show_eval>
                              more_env: []
                              words: [
                                {<func_show_eval>}
                                {
                                  (SQ 
                                    <
'(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")'
                                    >
                                  )
                                }
                                {(SQ <'exit $?'>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <func_show_eval>
                              more_env: []
                              words: [
                                {<func_show_eval>}
                                {
                                  (SQ 
                                    <
'$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"'
                                    >
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'symfileobj='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'symfileobj='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'symfileobj='>
                                      name: symfileobj
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName output_objdir) <'/'> 
                                      (${ Id.VSub_Name my_outputname) <S.> ($ Id.VSub_DollarName objext)
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}
                                        {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}
                                        {<Id.Lit_Star '*'> <cegcc> <Id.Lit_Star '*'>}
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-f>}
                                                        {
                                                          (DQ ($ Id.VSub_DollarName output_objdir) 
                                                            <'/'> ($ Id.VSub_DollarName my_outputname) <.def>
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'compile_command='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'compile_command='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'compile_command='>
                                                      name: compile_command
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                blame_tok: 
                                                                  <Id.VSub_DollarName '$ECHO'>
                                                                more_env: []
                                                                words: [
                                                                  {($ Id.VSub_DollarName ECHO)}
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
compile_command
                                                                      )
                                                                    )
                                                                  }
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: 
                                                                  <Id.VSub_DollarName '$SED'>
                                                                more_env: []
                                                                words: [
                                                                  {($ Id.VSub_DollarName SED)}
                                                                  {
                                                                    (DQ <'s%@SYMFILE@%'> 
                                                                      ($ Id.VSub_DollarName 
output_objdir
                                                                      ) <'/'> ($ Id.VSub_DollarName my_outputname) <'.def '> ($ Id.VSub_DollarName symfileobj) <'%'>
                                                                    )
                                                                  }
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            ]
                                                            ops: [<Id.Op_Pipe _>]
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'finalize_command='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'finalize_command='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'finalize_command='>
                                                      name: finalize_command
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                blame_tok: 
                                                                  <Id.VSub_DollarName '$ECHO'>
                                                                more_env: []
                                                                words: [
                                                                  {($ Id.VSub_DollarName ECHO)}
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
finalize_command
                                                                      )
                                                                    )
                                                                  }
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: 
                                                                  <Id.VSub_DollarName '$SED'>
                                                                more_env: []
                                                                words: [
                                                                  {($ Id.VSub_DollarName SED)}
                                                                  {
                                                                    (DQ <'s%@SYMFILE@%'> 
                                                                      ($ Id.VSub_DollarName 
output_objdir
                                                                      ) <'/'> ($ Id.VSub_DollarName my_outputname) <'.def '> ($ Id.VSub_DollarName symfileobj) <'%'>
                                                                    )
                                                                  }
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            ]
                                                            ops: [<Id.Op_Pipe _>]
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [24157 24171]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'compile_command='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'compile_command='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'compile_command='>
                                                  name: compile_command
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (CommandSub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (command.Pipeline
                                                        children: [
                                                          (command.Simple
                                                            blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                            more_env: []
                                                            words: [
                                                              {($ Id.VSub_DollarName ECHO)}
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
compile_command
                                                                  )
                                                                )
                                                              }
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                          (command.Simple
                                                            blame_tok: <Id.VSub_DollarName '$SED'>
                                                            more_env: []
                                                            words: [
                                                              {($ Id.VSub_DollarName SED)}
                                                              {
                                                                (DQ <'s%@SYMFILE@%'> 
                                                                  ($ Id.VSub_DollarName symfileobj) <'%'>
                                                                )
                                                              }
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        ]
                                                        ops: [<Id.Op_Pipe _>]
                                                      )
                                                    right: <Id.Backtick_Right '`'>
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'finalize_command='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'finalize_command='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'finalize_command='>
                                                  name: finalize_command
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (CommandSub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (command.Pipeline
                                                        children: [
                                                          (command.Simple
                                                            blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                            more_env: []
                                                            words: [
                                                              {($ Id.VSub_DollarName ECHO)}
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
finalize_command
                                                                  )
                                                                )
                                                              }
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                          (command.Simple
                                                            blame_tok: <Id.VSub_DollarName '$SED'>
                                                            more_env: []
                                                            words: [
                                                              {($ Id.VSub_DollarName SED)}
                                                              {
                                                                (DQ <'s%@SYMFILE@%'> 
                                                                  ($ Id.VSub_DollarName symfileobj) <'%'>
                                                                )
                                                              }
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        ]
                                                        ops: [<Id.Op_Pipe _>]
                                                      )
                                                    right: <Id.Backtick_Right '`'>
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'compile_command='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'compile_command='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'compile_command='>
                                              name: compile_command
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName ECHO)}
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName compile_command)
                                                            )
                                                          }
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName SED)}
                                                          {
                                                            (DQ <'s%@SYMFILE@%'> 
                                                              ($ Id.VSub_DollarName symfileobj) <'%'>
                                                            )
                                                          }
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'finalize_command='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'finalize_command='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'finalize_command='>
                                              name: finalize_command
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName ECHO)}
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName finalize_command)
                                                            )
                                                          }
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName SED)}
                                                          {
                                                            (DQ <'s%@SYMFILE@%'> 
                                                              ($ Id.VSub_DollarName symfileobj) <'%'>
                                                            )
                                                          }
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_fatal_error>
                              more_env: []
                              words: [
                                {<func_fatal_error>}
                                {
                                  (DQ <'unknown suffix for \''> ($ Id.VSub_DollarName my_dlsyms) <'\''>)
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  spids: [22391 22402]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'compile_command='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'compile_command='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'compile_command='>
                          name: compile_command
                        )
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <Id.VSub_DollarName '$ECHO'>
                                    more_env: []
                                    words: [
                                      {($ Id.VSub_DollarName ECHO)}
                                      {(DQ ($ Id.VSub_DollarName compile_command))}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <Id.VSub_DollarName '$SED'>
                                    more_env: []
                                    words: [{($ Id.VSub_DollarName SED)} {(DQ <'s% @SYMFILE@%%'>)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_Pipe _>]
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'finalize_command='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'finalize_command='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'finalize_command='>
                          name: finalize_command
                        )
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <Id.VSub_DollarName '$ECHO'>
                                    more_env: []
                                    words: [
                                      {($ Id.VSub_DollarName ECHO)}
                                      {(DQ ($ Id.VSub_DollarName finalize_command))}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <Id.VSub_DollarName '$SED'>
                                    more_env: []
                                    words: [{($ Id.VSub_DollarName SED)} {(DQ <'s% @SYMFILE@%%'>)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_Pipe _>]
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_cygming_gnu_implib_p>
      name: func_cygming_gnu_implib_p
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <func_to_tool_file>
              more_env: []
              words: [
                {<func_to_tool_file>}
                {(DQ ($ Id.VSub_Number 1))}
                {<func_convert_file_msys_to_w32>}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_cygming_gnu_implib_tmp='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_cygming_gnu_implib_tmp='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_cygming_gnu_implib_tmp='>
                      name: func_cygming_gnu_implib_tmp
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <Id.VSub_DollarName '$NM'>
                                more_env: []
                                words: [
                                  {($ Id.VSub_DollarName NM)}
                                  {(DQ ($ Id.VSub_DollarName func_to_tool_file_result))}
                                ]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <eval>
                                more_env: []
                                words: [{<eval>} {(DQ ($ Id.VSub_DollarName global_symbol_pipe))}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <Id.VSub_DollarName '$EGREP'>
                                more_env: []
                                words: [
                                  {($ Id.VSub_DollarName EGREP)}
                                  {(SQ <' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'>)}
                                ]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <test>
              more_env: []
              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName func_cygming_gnu_implib_tmp))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_cygming_ms_implib_p>
      name: func_cygming_ms_implib_p
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <func_to_tool_file>
              more_env: []
              words: [
                {<func_to_tool_file>}
                {(DQ ($ Id.VSub_Number 1))}
                {<func_convert_file_msys_to_w32>}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_cygming_ms_implib_tmp='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_cygming_ms_implib_tmp='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_cygming_ms_implib_tmp='>
                      name: func_cygming_ms_implib_tmp
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <Id.VSub_DollarName '$NM'>
                                more_env: []
                                words: [
                                  {($ Id.VSub_DollarName NM)}
                                  {(DQ ($ Id.VSub_DollarName func_to_tool_file_result))}
                                ]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <eval>
                                more_env: []
                                words: [{<eval>} {(DQ ($ Id.VSub_DollarName global_symbol_pipe))}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <Id.VSub_DollarName '$GREP'>
                                more_env: []
                                words: [{($ Id.VSub_DollarName GREP)} {(SQ <_NULL_IMPORT_DESCRIPTOR>)}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <test>
              more_env: []
              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName func_cygming_ms_implib_tmp))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_win32_libid>
      name: func_win32_libid
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'win32_libid_type='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'win32_libid_type='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'win32_libid_type='>
                      name: win32_libid_type
                    )
                  op: assign_op.Equal
                  rhs: {<unknown>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'win32_fileres='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'win32_fileres='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'win32_fileres='> name:win32_fileres)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <file>
                            more_env: []
                            words: [{<file>} {<-L>} {($ Id.VSub_Number 1)}]
                            redirects: [
                              (Redir
                                op: <Id.Redir_Great '2>'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<'/dev/null'>}
                              )
                            ]
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName win32_fileres)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> <ar> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\ '>
                            ch: ' '
                          ) <archive> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '> ch:' ') <Id.KW_Import import> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\ '>
                            ch: ' '
                          ) <library> <Id.Lit_Star '*'>
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'win32_libid_type='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'win32_libid_type='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'win32_libid_type='>
                              name: win32_libid_type
                            )
                          op: assign_op.Equal
                          rhs: {(DQ <'x86 archive import'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> <ar> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\ '>
                            ch: ' '
                          ) <archive> <Id.Lit_Star '*'>
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (command.Simple
                                          blame_tok: <eval>
                                          more_env: []
                                          words: [
                                            {<eval>}
                                            {($ Id.VSub_DollarName OBJDUMP)}
                                            {<-f>}
                                            {($ Id.VSub_Number 1)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$SED'>
                                          more_env: []
                                          words: [{($ Id.VSub_DollarName SED)} {<-e>} {(SQ <10q>)}]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '2>'>
                                              loc: (redir_loc.Fd fd:2)
                                              arg: {<'/dev/null'>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$EGREP'>
                                          more_env: []
                                          words: [
                                            {($ Id.VSub_DollarName EGREP)}
                                            {
                                              (SQ 
                                                <
'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
                                                >
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {<'/dev/null'>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName nm_interface)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_DoubleQuote '"'>
                                  pattern: (pat.Words words:[{(DQ <'MS dumpbin'>)}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.AndOr
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <func_cygming_ms_implib_p>
                                                      more_env: []
                                                      words: [
                                                        {<func_cygming_ms_implib_p>}
                                                        {(DQ ($ Id.VSub_Number 1))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <func_cygming_gnu_implib_p>
                                                      more_env: []
                                                      words: [
                                                        {<func_cygming_gnu_implib_p>}
                                                        {(DQ ($ Id.VSub_Number 1))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DPipe _>]
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'win32_nmres='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'win32_nmres='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'win32_nmres='>
                                                      name: win32_nmres
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<Id.KW_Import import>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [24714 24732]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'win32_nmres='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'win32_nmres='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'win32_nmres='>
                                                  name: win32_nmres
                                                )
                                              op: assign_op.Equal
                                              rhs: (rhs_word__Empty)
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_to_tool_file>
                                      more_env: []
                                      words: [
                                        {<func_to_tool_file>}
                                        {(DQ ($ Id.VSub_Number 1))}
                                        {<func_convert_file_msys_to_w32>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'win32_nmres='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'win32_nmres='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'win32_nmres='>
                                              name: win32_nmres
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <eval>
                                                        more_env: []
                                                        words: [
                                                          {<eval>}
                                                          {($ Id.VSub_DollarName NM)}
                                                          {<-f>}
                                                          {<posix>}
                                                          {<-A>}
                                                          {
                                                            (word_part.EscapedLiteral
                                                              token: <Id.Lit_EscapedChar '\\"'>
                                                              ch: '"'
                                                            ) ($ Id.VSub_DollarName func_to_tool_file_result) 
                                                            (word_part.EscapedLiteral
                                                              token: <Id.Lit_EscapedChar '\\"'>
                                                              ch: '"'
                                                            )
                                                          }
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName SED)}
                                                          {<-n>}
                                                          {<-e>}
                                                          {
                                                            (SQ <'\n'> <'\t    1,100{\n'> 
                                                              <'\t\t/ I /{\n'> <'\t\t    s|.*|import|\n'> <'\t\t    p\n'> <'\t\t    q\n'> <'\t\t}\n'> <'\t    }'>
                                                            )
                                                          }
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName win32_nmres)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.KW_Import import>
                                  pattern: 
                                    (pat.Words
                                      words: [{<Id.KW_Import import> <Id.Lit_Star '*'>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'win32_libid_type='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'win32_libid_type='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'win32_libid_type='>
                                              name: win32_libid_type
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ <'x86 archive import'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'win32_libid_type='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'win32_libid_type='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'win32_libid_type='>
                                              name: win32_libid_type
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ <'x86 archive static'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          spids: [24662 24698]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <DLL> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'win32_libid_type='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'win32_libid_type='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'win32_libid_type='>
                              name: win32_libid_type
                            )
                          op: assign_op.Equal
                          rhs: {(DQ <'x86 DLL'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <executable> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName win32_fileres)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> <MS> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\ '>
                                    ch: ' '
                                  ) <Windows> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '> ch:' ') <PE> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\ '>
                                    ch: ' '
                                  ) <Intel> <Id.Lit_Star '*'>
                                }
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'win32_libid_type='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'win32_libid_type='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'win32_libid_type='>
                                      name: win32_libid_type
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <'x86 DLL'>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$ECHO'>
              more_env: []
              words: [{($ Id.VSub_DollarName ECHO)} {(DQ ($ Id.VSub_DollarName win32_libid_type))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_cygming_dll_for_implib>
      name: func_cygming_dll_for_implib
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'sharedlib_from_linklib_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'sharedlib_from_linklib_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'sharedlib_from_linklib_result='>
                      name: sharedlib_from_linklib_result
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <Id.VSub_DollarName '$DLLTOOL'>
                            more_env: []
                            words: [
                              {($ Id.VSub_DollarName DLLTOOL)}
                              {<--identify-strict>}
                              {<--identify>}
                              {(DQ ($ Id.VSub_Number 1))}
                            ]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_cygming_dll_for_implib_fallback_core>
      name: func_cygming_dll_for_implib_fallback_core
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'match_literal='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'match_literal='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'match_literal='> name:match_literal)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                more_env: []
                                words: [{($ Id.VSub_DollarName ECHO)} {(DQ ($ Id.VSub_Number 1))}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <Id.VSub_DollarName '$SED'>
                                more_env: []
                                words: [
                                  {($ Id.VSub_DollarName SED)}
                                  {(DQ ($ Id.VSub_DollarName sed_make_literal_regex))}
                                ]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$OBJDUMP'>
                  more_env: []
                  words: [
                    {($ Id.VSub_DollarName OBJDUMP)}
                    {<-s>}
                    {<--section>}
                    {(DQ ($ Id.VSub_Number 1))}
                    {(DQ ($ Id.VSub_Number 2))}
                  ]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$SED'>
                  more_env: []
                  words: [
                    {($ Id.VSub_DollarName SED)}
                    {(SQ <'/^Contents of section '>) (DQ ($ Id.VSub_DollarName match_literal)) 
                      (SQ <':/{\n'> 
                        <'      # Place marker at beginning of archive member dllname section\n'> <'      s/.*/====MARK====/\n'> <'      p\n'> <'      d\n'> <'    }\n'> 
                        <'    # These lines can sometimes be longer than 43 characters, but\n'> <'    # are always uninteresting\n'> <'    /:[\t ]*file format pe[i]\\{,1\\}-/d\n'> 
                        <'    /^In archive [^:]*:/d\n'> <'    # Ensure marker is printed\n'> <'    /^====MARK====/p\n'> 
                        <'    # Remove all lines with less than 43 characters\n'> <'    /^.\\{43\\}/!d\n'> <'    # From remaining lines, remove first 43 characters\n'> 
                        <'    s/^.\\{43\\}//'>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$SED'>
                  more_env: []
                  words: [
                    {($ Id.VSub_DollarName SED)}
                    {<-n>}
                    {
                      (SQ <'\n'> 
                        <'      # Join marker and all lines until next marker into a single line\n'> <'      /^====MARK====/ b para\n'> <'      H\n'> <'      $ b para\n'> <'      b\n'> <'      :para\n'> 
                        <'      x\n'> <'      s/\\n//g\n'> <'      # Remove the marker\n'> <'      s/^====MARK====//\n'> 
                        <'      # Remove trailing dots and whitespace\n'> <'      s/[\\. \\t]*$//\n'> <'      # Print\n'> <'      /./p'>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$SED'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName SED)} {<-e>} {(SQ <'/^\\./d;/^.\\./d;q'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_cygming_dll_for_implib_fallback>
      name: func_cygming_dll_for_implib_fallback
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              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: <func_cygming_gnu_implib_p>
                              more_env: []
                              words: [{<func_cygming_gnu_implib_p>} {(DQ ($ Id.VSub_Number 1))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'sharedlib_from_linklib_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'sharedlib_from_linklib_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'sharedlib_from_linklib_result='>
                              name: sharedlib_from_linklib_result
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <func_cygming_dll_for_implib_fallback_core>
                                    more_env: []
                                    words: [
                                      {<func_cygming_dll_for_implib_fallback_core>}
                                      {(SQ <'.idata$7'>)}
                                      {(DQ ($ Id.VSub_Number 1))}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [25226 25235]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <func_cygming_ms_implib_p>
                              more_env: []
                              words: [{<func_cygming_ms_implib_p>} {(DQ ($ Id.VSub_Number 1))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'sharedlib_from_linklib_result='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'sharedlib_from_linklib_result='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'sharedlib_from_linklib_result='>
                              name: sharedlib_from_linklib_result
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <func_cygming_dll_for_implib_fallback_core>
                                    more_env: []
                                    words: [
                                      {<func_cygming_dll_for_implib_fallback_core>}
                                      {(SQ <'.idata$6'>)}
                                      {(DQ ($ Id.VSub_Number 1))}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [25258 25267]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'sharedlib_from_linklib_result='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'sharedlib_from_linklib_result='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'sharedlib_from_linklib_result='>
                          name: sharedlib_from_linklib_result
                        )
                      op: assign_op.Equal
                      rhs: (rhs_word__Empty)
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_extract_an_archive>
      name: func_extract_an_archive
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'f_ex_an_ar_dir='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'f_ex_an_ar_dir='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'f_ex_an_ar_dir='>
                          name: f_ex_an_ar_dir
                        )
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'f_ex_an_ar_oldlib='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'f_ex_an_ar_oldlib='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'f_ex_an_ar_oldlib='>
                      name: f_ex_an_ar_oldlib
                    )
                  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: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<yes>}
                                {<Id.Lit_Equals '='>}
                                {(DQ ($ Id.VSub_DollarName lock_old_archive_extraction))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'lockfile='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'lockfile='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lockfile='> name:lockfile)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName f_ex_an_ar_oldlib) <.lock>}
                        )
                      ]
                      redirects: []
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_Until until>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.AndOr
                                  children: [
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                      more_env: []
                                      words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <ln>
                                      more_env: []
                                      words: [
                                        {<ln>}
                                        {(DQ ($ Id.VSub_DollarName progpath))}
                                        {(DQ ($ Id.VSub_DollarName lockfile))}
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_Great '2>'>
                                          loc: (redir_loc.Fd fd:2)
                                          arg: {<'/dev/null'>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  ops: [<Id.Op_DPipe _>]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Simple
                              blame_tok: <func_echo>
                              more_env: []
                              words: [
                                {<func_echo>}
                                {
                                  (DQ <'Waiting for '> ($ Id.VSub_DollarName lockfile) 
                                    <' to be removed'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <sleep>
                              more_env: []
                              words: [{<sleep>} {<2>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  spids: [25332 25345]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <func_show_eval>
              more_env: []
              words: [
                {<func_show_eval>}
                {
                  (DQ <'(cd '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                    <'f_ex_an_ar_dir && '> ($ Id.VSub_DollarName AR) <' x '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <f_ex_an_ar_oldlib> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <')'>
                  )
                }
                {(SQ <'stat=$?; rm -f "$lockfile"; exit $stat'>)}
              ]
              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>}
                                {<yes>}
                                {<Id.Lit_Equals '='>}
                                {(DQ ($ Id.VSub_DollarName lock_old_archive_extraction))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                          more_env: []
                          words: [{($ Id.VSub_DollarName opt_dry_run)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <rm>
                          more_env: []
                          words: [{<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName lockfile))}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  spids: [25418 25431]
                )
              ]
              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.Subshell
                              left: <Id.Op_LParen _>
                              child: 
                                (command.Pipeline
                                  children: [
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$AR'>
                                      more_env: []
                                      words: [
                                        {($ Id.VSub_DollarName AR)}
                                        {<t>}
                                        {(DQ ($ Id.VSub_DollarName f_ex_an_ar_oldlib))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <sort>
                                      more_env: []
                                      words: [{<sort>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <sort>
                                      more_env: []
                                      words: [{<sort>} {<-uc>}]
                                      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
                                    )
                                  ]
                                  ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                )
                              right: <Id.Right_Subshell _>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <Id.Lit_Colon ':'>
                      more_env: []
                      words: [{<Id.Lit_Colon ':'>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [25450 25479]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <func_fatal_error>
                  more_env: []
                  words: [
                    {<func_fatal_error>}
                    {
                      (DQ <'object name conflicts in archive: '> ($ Id.VSub_DollarName f_ex_an_ar_dir) 
                        <'/'> ($ Id.VSub_DollarName f_ex_an_ar_oldlib)
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_extract_archives>
      name: func_extract_archives
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'my_gentop='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'my_gentop='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_gentop='> name:my_gentop)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'my_oldlibs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'my_oldlibs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_oldlibs='> name:my_oldlibs)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Number 1>
                        var_name: 1
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VTest_Plus _>
                            arg_word: {(DQ ($ Id.VSub_At '@'))}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'my_oldobjs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'my_oldobjs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_oldobjs='> name:my_oldobjs)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'my_xlib='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'my_xlib='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_xlib='> name:my_xlib)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'my_xabs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'my_xabs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_xabs='> name:my_xabs)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'my_xdir='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'my_xdir='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_xdir='> name:my_xdir)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [my_xlib]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName my_oldlibs)}])
              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 my_xlib)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_LBracket '['>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_LBracket '['> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\\\'>
                                    ch: '\\'
                                  ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                }
                                {<Id.Lit_LBracket '['> <A-Za-z> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/'> 
                                  <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                }
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'my_xabs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'my_xabs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'my_xabs='>
                                      name: my_xabs
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName my_xlib)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'my_xabs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'my_xabs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'my_xabs='>
                                      name: my_xabs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <pwd>
                                            more_env: []
                                            words: [{<pwd>}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      ) (DQ <'/'> ($ Id.VSub_DollarName my_xlib))
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_basename>
                      more_env: []
                      words: [{<func_basename>} {(DQ ($ Id.VSub_DollarName my_xlib))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'my_xlib='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'my_xlib='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_xlib='> name:my_xlib)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_basename_result)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'my_xlib_u='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'my_xlib_u='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_xlib_u='> name:my_xlib_u)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName my_xlib)}
                        )
                      ]
                      redirects: []
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <Id.Lit_Colon ':'>
                                  more_env: []
                                  words: [{<Id.Lit_Colon ':'>}]
                                  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: {(DQ <' '> ($ Id.VSub_DollarName extracted_archives) <' '>)}
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> 
                                          (DQ <' '> ($ Id.VSub_DollarName my_xlib_u) <' '>) <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_arith>
                                      more_env: []
                                      words: [
                                        {<func_arith>}
                                        {($ Id.VSub_DollarName extracted_serial)}
                                        {<Id.Lit_Other '+'>}
                                        {<1>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'extracted_serial='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'extracted_serial='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'extracted_serial='>
                                              name: extracted_serial
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_arith_result)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'my_xlib_u='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'my_xlib_u='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'my_xlib_u='>
                                              name: my_xlib_u
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {<lt> ($ Id.VSub_DollarName extracted_serial) <-> 
                                              ($ Id.VSub_DollarName my_xlib)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'extracted_archives='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'extracted_archives='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'extracted_archives='>
                              name: extracted_archives
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName extracted_archives) <' '> 
                                ($ Id.VSub_DollarName my_xlib_u)
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'my_xdir='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'my_xdir='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_xdir='> name:my_xdir)
                          op: assign_op.Equal
                          rhs: 
                            {($ Id.VSub_DollarName my_gentop) <'/'> ($ Id.VSub_DollarName my_xlib_u)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_mkdir_p>
                      more_env: []
                      words: [{<func_mkdir_p>} {(DQ ($ Id.VSub_DollarName my_xdir))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [{<Id.Lit_Star '*'> <-darwin> <Id.Lit_Star '*'>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_verbose>
                              more_env: []
                              words: [
                                {<func_verbose>}
                                {(DQ <'Extracting '> ($ Id.VSub_DollarName my_xabs))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                  more_env: []
                                  words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (BraceGroup
                                  left: <Id.Lit_LBrace '{'>
                                  children: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'darwin_orig_dir='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'darwin_orig_dir='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'darwin_orig_dir='>
                                              name: darwin_orig_dir
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <pwd>
                                                    more_env: []
                                                    words: [{<pwd>}]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <cd>
                                          more_env: []
                                          words: [{<cd>} {($ Id.VSub_DollarName my_xdir)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Exit exit>
                                          arg_word: {($ Id.VSub_QMark '?')}
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'darwin_archive='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'darwin_archive='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'darwin_archive='>
                                              name: darwin_archive
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName my_xabs)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'darwin_curdir='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'darwin_curdir='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'darwin_curdir='>
                                              name: darwin_curdir
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <pwd>
                                                    more_env: []
                                                    words: [{<pwd>}]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_basename>
                                      more_env: []
                                      words: [
                                        {<func_basename>}
                                        {(DQ ($ Id.VSub_DollarName darwin_archive))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'darwin_base_archive='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'darwin_base_archive='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'darwin_base_archive='>
                                              name: darwin_base_archive
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_basename_result)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'darwin_arches='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'darwin_arches='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'darwin_arches='>
                                              name: darwin_arches
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.AndOr
                                                    children: [
                                                      (command.Pipeline
                                                        children: [
                                                          (command.Simple
                                                            blame_tok: <Id.VSub_DollarName '$LIPO'>
                                                            more_env: []
                                                            words: [
                                                              {($ Id.VSub_DollarName LIPO)}
                                                              {<-info>}
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
darwin_archive
                                                                  )
                                                                )
                                                              }
                                                            ]
                                                            redirects: [
                                                              (Redir
                                                                op: <Id.Redir_Great '2>'>
                                                                loc: (redir_loc.Fd fd:2)
                                                                arg: {<'/dev/null'>}
                                                              )
                                                            ]
                                                            do_fork: T
                                                          )
                                                          (command.Simple
                                                            blame_tok: <Id.VSub_DollarName '$GREP'>
                                                            more_env: []
                                                            words: [
                                                              {($ Id.VSub_DollarName GREP)}
                                                              {<Architectures>}
                                                            ]
                                                            redirects: [
                                                              (Redir
                                                                op: <Id.Redir_Great '2>'>
                                                                loc: (redir_loc.Fd fd:2)
                                                                arg: {<'/dev/null'>}
                                                              )
                                                            ]
                                                            do_fork: T
                                                          )
                                                        ]
                                                        ops: [<Id.Op_Pipe _>]
                                                      )
                                                      (command.Simple
                                                        blame_tok: <true>
                                                        more_env: []
                                                        words: [{<true>}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_DPipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-n>}
                                                        {(DQ ($ Id.VSub_DollarName darwin_arches))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'darwin_arches='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'darwin_arches='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'darwin_arches='>
                                                      name: darwin_arches
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                blame_tok: 
                                                                  <Id.VSub_DollarName '$ECHO'>
                                                                more_env: []
                                                                words: [
                                                                  {($ Id.VSub_DollarName ECHO)}
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
darwin_arches
                                                                      )
                                                                    )
                                                                  }
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: 
                                                                  <Id.VSub_DollarName '$SED'>
                                                                more_env: []
                                                                words: [
                                                                  {($ Id.VSub_DollarName SED)}
                                                                  {<-e>}
                                                                  {(SQ <'s/.*are://'>)}
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            ]
                                                            ops: [<Id.Op_Pipe _>]
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'darwin_arch='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'darwin_arch='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'darwin_arch='>
                                                      name: darwin_arch
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <func_verbose>
                                              more_env: []
                                              words: [
                                                {<func_verbose>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName darwin_base_archive) 
                                                    <' has multiple architectures '> ($ Id.VSub_DollarName darwin_arches)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [darwin_arch]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName darwin_arches)}]
                                                )
                                              semi_tok: <Id.Op_Semi _>
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <func_mkdir_p>
                                                      more_env: []
                                                      words: [
                                                        {<func_mkdir_p>}
                                                        {
                                                          (DQ <unfat-> ($ Id.VSub_Dollar '$') <'/'> 
                                                            ($ Id.VSub_DollarName darwin_base_archive) <-> ($ Id.VSub_DollarName darwin_arch)
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <Id.VSub_DollarName '$LIPO'>
                                                      more_env: []
                                                      words: [
                                                        {($ Id.VSub_DollarName LIPO)}
                                                        {<-thin>}
                                                        {($ Id.VSub_DollarName darwin_arch)}
                                                        {<-output>}
                                                        {
                                                          (DQ <unfat-> ($ Id.VSub_Dollar '$') <'/'> 
                                                            ($ Id.VSub_DollarName darwin_base_archive) <-> ($ Id.VSub_DollarName darwin_arch) <'/'> ($ Id.VSub_DollarName darwin_base_archive)
                                                          )
                                                        }
                                                        {(DQ ($ Id.VSub_DollarName darwin_archive))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <cd>
                                                      more_env: []
                                                      words: [
                                                        {<cd>}
                                                        {
                                                          (DQ <unfat-> ($ Id.VSub_Dollar '$') <'/'> 
                                                            ($ Id.VSub_DollarName darwin_base_archive) <-> ($ Id.VSub_DollarName darwin_arch)
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <func_extract_an_archive>
                                                      more_env: []
                                                      words: [
                                                        {<func_extract_an_archive>}
                                                        {
                                                          (DQ 
                                                            (CommandSub
                                                              left_token: <Id.Left_Backtick '`'>
                                                              child: 
                                                                (command.Simple
                                                                  blame_tok: <pwd>
                                                                  more_env: []
                                                                  words: [{<pwd>}]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              right: <Id.Backtick_Right '`'>
                                                            )
                                                          )
                                                        }
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName darwin_base_archive)
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <cd>
                                                      more_env: []
                                                      words: [
                                                        {<cd>}
                                                        {(DQ ($ Id.VSub_DollarName darwin_curdir))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <Id.VSub_DollarName '$RM'>
                                                      more_env: []
                                                      words: [
                                                        {($ Id.VSub_DollarName RM)}
                                                        {
                                                          (DQ <unfat-> ($ Id.VSub_Dollar '$') <'/'> 
                                                            ($ Id.VSub_DollarName darwin_base_archive) <-> ($ Id.VSub_DollarName darwin_arch) <'/'> ($ Id.VSub_DollarName darwin_base_archive)
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'darwin_filelist='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'darwin_filelist='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'darwin_filelist='>
                                                      name: darwin_filelist
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                blame_tok: <find>
                                                                more_env: []
                                                                words: [
                                                                  {<find>}
                                                                  {<unfat-> ($ Id.VSub_Dollar '$')}
                                                                  {<-type>}
                                                                  {<f>}
                                                                  {<-name>}
                                                                  {
                                                                    (word_part.EscapedLiteral
                                                                      token: 
                                                                        <Id.Lit_EscapedChar '\\*'>
                                                                      ch: '*'
                                                                    ) <.o>
                                                                  }
                                                                  {<-print>}
                                                                  {<-o>}
                                                                  {<-name>}
                                                                  {
                                                                    (word_part.EscapedLiteral
                                                                      token: 
                                                                        <Id.Lit_EscapedChar '\\*'>
                                                                      ch: '*'
                                                                    ) <.lo>
                                                                  }
                                                                  {<-print>}
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: 
                                                                  <Id.VSub_DollarName '$SED'>
                                                                more_env: []
                                                                words: [
                                                                  {($ Id.VSub_DollarName SED)}
                                                                  {<-e>}
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
sed_basename
                                                                      )
                                                                    )
                                                                  }
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: <sort>
                                                                more_env: []
                                                                words: [{<sort>} {<-u>}]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            ]
                                                            ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'darwin_file='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'darwin_file='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'darwin_file='>
                                                      name: darwin_file
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'darwin_files='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'darwin_files='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'darwin_files='>
                                                      name: darwin_files
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [darwin_file]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName darwin_filelist)}]
                                                )
                                              semi_tok: <Id.Op_Semi _>
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'darwin_files='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'darwin_files='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'darwin_files='>
                                                              name: darwin_files
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (command.Simple
                                                                        blame_tok: <find>
                                                                        more_env: []
                                                                        words: [
                                                                          {<find>}
                                                                          {<unfat-> 
                                                                            ($ Id.VSub_Dollar '$')
                                                                          }
                                                                          {<-name>}
                                                                          {
                                                                            ($ Id.VSub_DollarName 
darwin_file
                                                                            )
                                                                          }
                                                                          {<-print>}
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                      (command.Simple
                                                                        blame_tok: <sort>
                                                                        more_env: []
                                                                        words: [{<sort>}]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                      (command.Simple
                                                                        blame_tok: 
                                                                          <Id.VSub_DollarName 
'$NL2SP'
                                                                          >
                                                                        more_env: []
                                                                        words: [
                                                                          {
                                                                            ($ Id.VSub_DollarName 
NL2SP
                                                                            )
                                                                          }
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    ]
                                                                    ops: [
                                                                      <Id.Op_Pipe _>
                                                                      <Id.Op_Pipe _>
                                                                    ]
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <Id.VSub_DollarName '$LIPO'>
                                                      more_env: []
                                                      words: [
                                                        {($ Id.VSub_DollarName LIPO)}
                                                        {<-create>}
                                                        {<-output>}
                                                        {(DQ ($ Id.VSub_DollarName darwin_file))}
                                                        {($ Id.VSub_DollarName darwin_files)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$RM'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName RM)}
                                                {<-rf>}
                                                {<unfat-> ($ Id.VSub_Dollar '$')}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <cd>
                                              more_env: []
                                              words: [
                                                {<cd>}
                                                {(DQ ($ Id.VSub_DollarName darwin_orig_dir))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [25824 25835]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <cd>
                                          more_env: []
                                          words: [{<cd>} {($ Id.VSub_DollarName darwin_orig_dir)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <func_extract_an_archive>
                                          more_env: []
                                          words: [
                                            {<func_extract_an_archive>}
                                            {(DQ ($ Id.VSub_DollarName my_xdir))}
                                            {(DQ ($ Id.VSub_DollarName my_xabs))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  redirects: []
                                  right: <Id.Lit_RBrace '}'>
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_extract_an_archive>
                              more_env: []
                              words: [
                                {<func_extract_an_archive>}
                                {(DQ ($ Id.VSub_DollarName my_xdir))}
                                {(DQ ($ Id.VSub_DollarName my_xabs))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'my_oldobjs='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'my_oldobjs='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'my_oldobjs='> name:my_oldobjs)
                          op: assign_op.Equal
                          rhs: 
                            {(DQ ($ Id.VSub_DollarName my_oldobjs) <' '>) 
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <find>
                                        more_env: []
                                        words: [
                                          {<find>}
                                          {($ Id.VSub_DollarName my_xdir)}
                                          {<-name>}
                                          {
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\*'>
                                              ch: '*'
                                            ) <.> ($ Id.VSub_DollarName objext)
                                          }
                                          {<-print>}
                                          {<-o>}
                                          {<-name>}
                                          {
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\*'>
                                              ch: '*'
                                            ) <.lo>
                                          }
                                          {<-print>}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sort>
                                        more_env: []
                                        words: [{<sort>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <Id.VSub_DollarName '$NL2SP'>
                                        more_env: []
                                        words: [{($ Id.VSub_DollarName NL2SP)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_extract_archives_result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_extract_archives_result='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_extract_archives_result='>
                      name: func_extract_archives_result
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName my_oldobjs)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_emit_wrapper>
      name: func_emit_wrapper
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'func_emit_wrapper_arg1='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'func_emit_wrapper_arg1='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'func_emit_wrapper_arg1='>
                      name: func_emit_wrapper_arg1
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Number 1>
                        var_name: 1
                        suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<no>})
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$ECHO'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName ECHO)}
                {
                  (DQ <'#! '> ($ Id.VSub_DollarName SHELL) <'\n'> <'\n'> <'# '> 
                    ($ Id.VSub_DollarName output) <' - temporary wrapper script for '> ($ Id.VSub_DollarName objdir) <'/'> 
                    ($ Id.VSub_DollarName outputname) <'\n'> <'# Generated by '> ($ Id.VSub_DollarName PROGRAM) <' (GNU '> ($ Id.VSub_DollarName PACKAGE) <') '> 
                    ($ Id.VSub_DollarName VERSION) <'\n'> <'#\n'> <'# The '> ($ Id.VSub_DollarName output) 
                    <' program cannot be directly executed until all the libtool\n'> <'# libraries that it depends on are installed.\n'> <'#\n'> 
                    <'# This wrapper script should never be moved out of the build directory.\n'> <'# If it is, it will not operate correctly.\n'> <'\n'> 
                    <'# Sed substitution that helps us do robust quoting.  It backslashifies\n'> <'# metacharacters that are still active within double-quoted strings.\n'> <'sed_quote_subst=\''> 
                    ($ Id.VSub_DollarName sed_quote_subst) <'\'\n'> <'\n'> <'# Be Bourne compatible\n'> <'if test -n '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'{ZSH_VERSION+set}'> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <' && (emulate sh) >/dev/null 2>&1; then\n'> <'  emulate sh\n'> <'  NULLCMD=:\n'> 
                    <'  # Zsh 3.x and 4.x performs word splitting on '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'{1+'> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'@'> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <'}, which\n'> <'  # is contrary to our usage.  Disable this feature.\n'> <'  alias -g \''> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <'{1+'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <'@'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'}\'=\''> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'@'> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <'\'\n'> <'  setopt NO_GLOB_SUBST\n'> <'else\n'> <'  case '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\`'>
                      ch: '`'
                    ) <'(set -o) 2>/dev/null'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                    <' in *posix*) set -o posix;; esac\n'> <'fi\n'> <'BIN_SH=xpg4; export BIN_SH # for Tru64\n'> <'DUALCASE=1; export DUALCASE # for MKS sh\n'> 
                    <'\n'> <'# The HP-UX ksh and POSIX shell print the target directory to stdout\n'> <'# if CDPATH is set.\n'> 
                    <'(unset CDPATH) >/dev/null 2>&1 && unset CDPATH\n'> <'\n'> <'relink_command='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    ($ Id.VSub_DollarName relink_command) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'> <'\n'> 
                    <'# This environment variable determines our operation mode.\n'> <'if test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <libtool_install_magic> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' = '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) ($ Id.VSub_DollarName magic) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    <'; then\n'> <'  # install mode needs the following variables:\n'> <'  generated_by_libtool_version=\''> 
                    ($ Id.VSub_DollarName macro_version) <'\'\n'> <'  notinst_deplibs=\''> ($ Id.VSub_DollarName notinst_deplibs) <'\'\n'> <'else\n'> 
                    <'  # When we are sourced in execute mode, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'file and '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <'ECHO are already set.\n'> <'  if test '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <libtool_execute_magic> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <' != '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    ($ Id.VSub_DollarName magic) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'; then\n'> <'    file='> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <0> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'qECHO='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'qECHO='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'qECHO='> name:qECHO)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                more_env: []
                                words: [{($ Id.VSub_DollarName ECHO)} {(DQ ($ Id.VSub_DollarName ECHO))}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <Id.VSub_DollarName '$SED'>
                                more_env: []
                                words: [
                                  {($ Id.VSub_DollarName SED)}
                                  {(DQ ($ Id.VSub_DollarName sed_quote_subst))}
                                ]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$ECHO'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName ECHO)}
                {
                  (DQ <'\n'> <'# A function that is used when there is no print builtin or printf.\n'> 
                    <'func_fallback_echo ()\n'> <'{\n'> <'  eval \'cat <<_LTECHO_EOF\n'> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <'1\n'> <'_LTECHO_EOF\'\n'> <'}\n'> <'    ECHO='> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) ($ Id.VSub_DollarName qECHO) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'> 
                    <'  fi\n'> <'\n'> <'# Very basic option parsing. These options are (a) specific to\n'> 
                    <'# the libtool wrapper, (b) are identical between the wrapper\n'> <'# /script/ and the wrapper /executable/ that is used only on\n'> 
                    <'# windows platforms, and (c) all begin with the string '>
                  ) <--lt-> 
                  (DQ <'\n'> <'# (application programs are unlikely to have options that match\n'> 
                    <'# this pattern).\n'> <'#\n'> <'# There are only two supported options: --lt-debug and\n'> 
                    <'# --lt-dump-script. There is, deliberately, no --lt-help.\n'> <'#\n'> <'# The first argument to this parsing function should be the\n'> <'# script\'s '> 
                    ($ Id.VSub_Number 0) <' value, followed by '>
                  ) ($ Id.VSub_At '@') 
                  (DQ <'.\n'> <'lt_option_debug=\n'> <'func_parse_lt_options ()\n'> <'{\n'> 
                    <'  lt_script_arg0='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'0\n'> <'  shift\n'> 
                    <'  for lt_opt\n'> <'  do\n'> <'    case '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <lt_opt> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' in\n'> 
                    <'    --lt-debug) lt_option_debug=1 ;;\n'> <'    --lt-dump-script)\n'> <'        lt_dump_D='> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\`'>
                      ch: '`'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'ECHO '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <X> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <lt_script_arg0> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <' | '> ($ Id.VSub_DollarName SED) <' -e \'s/^X//\' -e \'s%/[^/]*'> <Id.Lit_Dollar '$'> <'%%\''> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\`'>
                      ch: '`'
                    ) <'\n'> <'        test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <X> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <lt_dump_D> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' = '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <X> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <lt_script_arg0> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <' && lt_dump_D=.\n'> <'        lt_dump_F='> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\`'>
                      ch: '`'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'ECHO '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <X> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <lt_script_arg0> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <' | '> ($ Id.VSub_DollarName SED) <' -e \'s/^X//\' -e \'s%^.*/%%\''> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\`'>
                      ch: '`'
                    ) <'\n'> <'        cat '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <'lt_dump_D/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <lt_dump_F> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <'\n'> <'        exit 0\n'> <'      ;;\n'> <'    --lt-*)\n'> <'        '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    <'Unrecognized --lt- option: \''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'lt_opt\''> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <' 1>&2\n'> <'        exit 1\n'> <'      ;;\n'> <'    esac\n'> <'  done\n'> <'\n'> 
                    <'  # Print the debug banner immediately:\n'> <'  if test -n '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <lt_option_debug> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'; then\n'> 
                    <'    echo '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ($ Id.VSub_DollarName outputname) 
                    <':'> ($ Id.VSub_DollarName output) <':'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                    <'LINENO: libtool wrapper (GNU '> ($ Id.VSub_DollarName PACKAGE) <') '> ($ Id.VSub_DollarName VERSION) 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <' 1>&2\n'> <'  fi\n'> <'}\n'> <'\n'> <'# Used when --lt-debug. Prints its arguments to stdout\n'> 
                    <'# (redirection is the responsibility of the caller)\n'> <'func_lt_dump_args ()\n'> <'{\n'> <'  lt_dump_args_N=1;\n'> <'  for lt_arg\n'> <'  do\n'> <'    '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    ($ Id.VSub_DollarName outputname) <':'> ($ Id.VSub_DollarName output) <':'> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <'LINENO: newargv['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                    <'lt_dump_args_N]: '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <lt_arg> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <'\n'> <'    lt_dump_args_N='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                    <'expr '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'lt_dump_args_N + 1'> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\`'>
                      ch: '`'
                    ) <'\n'> <'  done\n'> <'}\n'> <'\n'> <'# Core function for launching the target application\n'> 
                    <'func_exec_program_core ()\n'> <'{\n'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-mingw>}
                        {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-os2> <Id.Lit_Star '*'>}
                        {<Id.Lit_Star '*'> <-cegcc> <Id.Lit_Star '*'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$ECHO'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName ECHO)}
                        {
                          (DQ <'      if test -n '> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <lt_option_debug> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) <'; then\n'> <'        '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'ECHO '> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) ($ Id.VSub_DollarName outputname) <':'> ($ Id.VSub_DollarName output) <':'> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'LINENO: newargv[0]: '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <progdir> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\\\'>
                              ch: '\\'
                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' 1>&2\n'> 
                            <'        func_lt_dump_args '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'{1+'> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'@'> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) <'} 1>&2\n'> <'      fi\n'> <'      exec '> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <progdir> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\\\'>
                              ch: '\\'
                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'{1+'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'@'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'}\n'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$ECHO'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName ECHO)}
                        {
                          (DQ <'      if test -n '> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <lt_option_debug> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) <'; then\n'> <'        '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'ECHO '> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) ($ Id.VSub_DollarName outputname) <':'> ($ Id.VSub_DollarName output) <':'> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'LINENO: newargv[0]: '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                            <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <program> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) <' 1>&2\n'> <'        func_lt_dump_args '> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'{1+'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'@'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'} 1>&2\n'> <'      fi\n'> 
                            <'      exec '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <program> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'{1+'> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'@'> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) <'}\n'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$ECHO'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName ECHO)}
                {
                  (DQ <'      '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                    <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <'0: cannot exec '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'program '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <'*'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' 1>&2\n'> <'      exit 1\n'> 
                    <'}\n'> <'\n'> <'# A function to encapsulate launching the target application\n'> 
                    <'# Strips options in the --lt-* namespace from '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'@ and\n'> 
                    <'# launches target application with the remaining arguments.\n'> <'func_exec_program ()\n'> <'{\n'> <'  case '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'* '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <' in\n'> <'  *'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <' --lt-*)\n'> 
                    <'    for lt_wr_arg\n'> <'    do\n'> <'      case '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                    <'lt_wr_arg in\n'> <'      --lt-*) ;;\n'> <'      *) set x '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'@'> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <lt_wr_arg> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'; shift;;\n'> 
                    <'      esac\n'> <'      shift\n'> <'    done ;;\n'> <'  esac\n'> <'  func_exec_program_core '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <'{1+'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <'@'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'}\n'> <'}\n'> <'\n'> 
                    <'  # Parse options\n'> <'  func_parse_lt_options '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <0> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <'{1+'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <'@'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'}\n'> <'\n'> 
                    <'  # Find the directory that this script lives in.\n'> <'  thisdir='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' | '> 
                    ($ Id.VSub_DollarName SED) <' \'s%/[^/]*'> <Id.Lit_Dollar '$'> <'%%\''> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\`'>
                      ch: '`'
                    ) <'\n'> <'  test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <x> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <thisdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' = '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <x> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <file> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <' && thisdir=.\n'> <'\n'> <'  # Follow symbolic links until we get to the real thisdir.\n'> <'  file='> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\`'>
                      ch: '`'
                    ) <'ls -ld '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' | '> 
                    ($ Id.VSub_DollarName SED) <' -n \'s/.*-> //p\''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'\n'> 
                    <'  while test -n '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'; do\n'> <'    destdir='> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\`'>
                      ch: '`'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'ECHO '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <file> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <' | '> ($ Id.VSub_DollarName SED) <' \'s%/[^/]*'> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <'%%\''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'\n'> <'\n'> 
                    <'    # If there was a directory component, then change thisdir.\n'> <'    if test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <x> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <destdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' != '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <x> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <file> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <'; then\n'> <'      case '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <destdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' in\n'> <'      ['> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\\\'>
                      ch: '\\'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/]* | [A-Za-z]:['> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\\\'>
                      ch: '\\'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/]*) thisdir='> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <destdir> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <' ;;\n'> <'      *) thisdir='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <'thisdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <destdir> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <' ;;\n'> <'      esac\n'> <'    fi\n'> <'\n'> <'    file='> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\`'>
                      ch: '`'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'ECHO '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <file> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <' | '> ($ Id.VSub_DollarName SED) <' \'s%^.*/%%\''> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\`'>
                      ch: '`'
                    ) <'\n'> <'    file='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'ls -ld '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'thisdir/'> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' | '> 
                    ($ Id.VSub_DollarName SED) <' -n \'s/.*-> //p\''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'\n'> 
                    <'  done\n'> <'\n'> <'  # Usually \'no\', except on cygwin/mingw when embedded into\n'> <'  # the cwrapper.\n'> 
                    <'  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR='> ($ Id.VSub_DollarName func_emit_wrapper_arg1) <'\n'> <'  if test '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <WRAPPER_SCRIPT_BELONGS_IN_OBJDIR> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <' = '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <yes> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <'; then\n'> <'    # special case for \'.\'\n'> <'    if test '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <thisdir> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <' = '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <.> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <'; then\n'> <'      thisdir='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <pwd> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\`'>
                      ch: '`'
                    ) <'\n'> <'    fi\n'> <'    # remove .libs from thisdir\n'> <'    case '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <thisdir> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <' in\n'> <'    *['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\\\'>
                      ch: '\\'
                    ) <'/]'> ($ Id.VSub_DollarName objdir) <' ) thisdir='> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\`'>
                      ch: '`'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'ECHO '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <thisdir> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <' | '> ($ Id.VSub_DollarName SED) <' \'s%['> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\\\'>
                      ch: '\\'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/][^'> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\\\'>
                      ch: '\\'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/]*'> <Id.Lit_Dollar '$'> 
                    <'%%\''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <' ;;\n'> <'    '> 
                    ($ Id.VSub_DollarName objdir) <' )   thisdir=. ;;\n'> <'    esac\n'> <'  fi\n'> <'\n'> 
                    <'  # Try to get the absolute directory name.\n'> <'  absdir='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'cd '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <thisdir> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <' && pwd'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <'\n'> <'  test -n '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <absdir> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <' && thisdir='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <absdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'>
                  )
                }
              ]
              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>}
                                {<yes>}
                                {<Id.Lit_Equals '='>}
                                {(DQ ($ Id.VSub_DollarName fast_install))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$ECHO'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName ECHO)}
                        {
                          (DQ <'  program=lt-\''> ($ Id.VSub_DollarName outputname) <'\''> 
                            ($ Id.VSub_DollarName exeext) <'\n'> <'  progdir='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'thisdir/'> ($ Id.VSub_DollarName objdir) 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) <'\n'> <'\n'> <'  if test ! -f '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <program> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) <' ||\n'> <'     { file='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                            <'ls -1dt '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <program> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'progdir/../'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <program> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) <' 2>/dev/null | '> ($ Id.VSub_DollarName SED) <' 1q'> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\`'>
                              ch: '`'
                            ) <'; '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'\n'> <'       test '> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) <X> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <file> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) <' != '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <X> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <program> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) <'; }; then\n'> <'\n'> <'    file='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <-> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'> <'\n'> 
                            <'    if test ! -d '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <progdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'; then\n'> <'      '> 
                            ($ Id.VSub_DollarName MKDIR) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <progdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'> <'    else\n'> 
                            <'      '> ($ Id.VSub_DollarName RM) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <file> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) <'\n'> <'    fi'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$ECHO'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName ECHO)}
                        {
                          (DQ <'\n'> <'    # relink executable if necessary\n'> <'    if test -n '> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <relink_command> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) <'; then\n'> <'      if relink_command_output='> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\`'>
                              ch: '`'
                            ) <'eval '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'relink_command 2>&1'> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\`'>
                              ch: '`'
                            ) <'; then :\n'> <'      else\n'> <'\t'> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <relink_command_output> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' >&2\n'> 
                            <'\t'> ($ Id.VSub_DollarName RM) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <file> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) <'\n'> <'\texit 1\n'> <'      fi\n'> <'    fi\n'> <'\n'> <'    '> ($ Id.VSub_DollarName MV) <' '> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'progdir/'> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'progdir/'> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' 2>/dev/null ||\n'> 
                            <'    { '> ($ Id.VSub_DollarName RM) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <program> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) <';\n'> <'      '> ($ Id.VSub_DollarName MV) <' '> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'progdir/'> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'progdir/'> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'; }\n'> <'    '> 
                            ($ Id.VSub_DollarName RM) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <file> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) <'\n'> <'  fi'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [27087 27100]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$ECHO'>
                  more_env: []
                  words: [
                    {($ Id.VSub_DollarName ECHO)}
                    {
                      (DQ <'  program=\''> ($ Id.VSub_DollarName outputname) <'\'\n'> <'  progdir='> 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\"'>
                          ch: '"'
                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'thisdir/'> 
                        ($ Id.VSub_DollarName objdir) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$ECHO'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName ECHO)}
                {
                  (DQ <'\n'> <'  if test -f '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'progdir/'> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'; then'>
                  )
                }
              ]
              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>} {<-n>} {(DQ ($ Id.VSub_DollarName dllsearchpath))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$ECHO'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName ECHO)}
                        {
                          (DQ <'    # Add the dll search path components to the executable PATH\n'> 
                            <'    PATH='> ($ Id.VSub_DollarName dllsearchpath) <':'> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'PATH\n'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [27368 27379]
                )
              ]
              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.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<yes>}
                                    {<Id.Lit_Equals '='>}
                                    {(DQ ($ Id.VSub_DollarName shlibpath_overrides_runpath))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName shlibpath_var))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName temp_rpath))}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$ECHO'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName ECHO)}
                        {
                          (DQ <'    # Add our own library path to '> 
                            ($ Id.VSub_DollarName shlibpath_var) <'\n'> <'    '> ($ Id.VSub_DollarName shlibpath_var) <'='> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) ($ Id.VSub_DollarName temp_rpath) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                            ($ Id.VSub_DollarName shlibpath_var) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'> <'\n'> 
                            <'    # Some systems cannot cope with colon-terminated '> ($ Id.VSub_DollarName shlibpath_var) <'\n'> 
                            <'    # The second colon is a workaround for a bug in BeOS R4 sed\n'> <'    '> ($ Id.VSub_DollarName shlibpath_var) <'='> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\`'>
                              ch: '`'
                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'ECHO '> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                            ($ Id.VSub_DollarName shlibpath_var) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' | '> ($ Id.VSub_DollarName SED) 
                            <' \'s/::*'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'//\''> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\`'>
                              ch: '`'
                            ) <'\n'> <'\n'> <'    export '> ($ Id.VSub_DollarName shlibpath_var) <'\n'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [27403 27436]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$ECHO'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName ECHO)}
                {
                  (DQ <'    if test '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <libtool_execute_magic> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <' != '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    ($ Id.VSub_DollarName magic) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'; then\n'> 
                    <'      # Run the actual program with our arguments.\n'> <'      func_exec_program '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'{1+'> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'@'> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <'}\n'> <'    fi\n'> <'  else\n'> <'    # The program doesn\'t exist.\n'> <'    '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <'0: error: \''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'progdir/'> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <'program\' does not exist'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                    <' 1>&2\n'> <'    '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'ECHO '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <'This script is just a wrapper for '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <program.> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' 1>&2\n'> <'    '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\$'>
                      ch: '$'
                    ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'See the '> 
                    ($ Id.VSub_DollarName PACKAGE) <' documentation for more information.'> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <' 1>&2\n'> <'    exit 1\n'> <'  fi\n'> <fi>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_emit_cwrapperexe_src>
      name: func_emit_cwrapperexe_src
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'\n'>
                        <'/* '>
                        ($ Id.VSub_DollarName cwrappersource)
                        <' - temporary wrapper executable for '>
                        ($ Id.VSub_DollarName objdir)
                        <'/'>
                        ($ Id.VSub_DollarName outputname)
                        <'\n'>
                        <'   Generated by '>
                        ($ Id.VSub_DollarName PROGRAM)
                        <' (GNU '>
                        ($ Id.VSub_DollarName PACKAGE)
                        <') '>
                        ($ Id.VSub_DollarName VERSION)
                        <'\n'>
                        <'\n'>
                        <'   The '>
                        ($ Id.VSub_DollarName output)
                        <' program cannot be directly executed until all the libtool\n'>
                        <'   libraries that it depends on are installed.\n'>
                        <'\n'>
                        <
'   This wrapper executable should never be moved out of the build directory.\n'
                        >
                        <'   If it is, it will not operate correctly.\n'>
                        <'*/\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(DQ <EOF>)}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'#ifdef _MSC_VER\n'>
                        <'# define _CRT_SECURE_NO_DEPRECATE 1\n'>
                        <'#endif\n'>
                        <'#include <stdio.h>\n'>
                        <'#include <stdlib.h>\n'>
                        <'#ifdef _MSC_VER\n'>
                        <'# include <direct.h>\n'>
                        <'# include <process.h>\n'>
                        <'# include <io.h>\n'>
                        <'#else\n'>
                        <'# include <unistd.h>\n'>
                        <'# include <stdint.h>\n'>
                        <'# ifdef __CYGWIN__\n'>
                        <'#  include <io.h>\n'>
                        <'# endif\n'>
                        <'#endif\n'>
                        <'#include <malloc.h>\n'>
                        <'#include <stdarg.h>\n'>
                        <'#include <assert.h>\n'>
                        <'#include <string.h>\n'>
                        <'#include <ctype.h>\n'>
                        <'#include <errno.h>\n'>
                        <'#include <fcntl.h>\n'>
                        <'#include <sys/stat.h>\n'>
                        <'\n'>
                        <'#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)\n'>
                        <'\n'>
                        <'/* declarations of non-ANSI functions */\n'>
                        <'#if defined __MINGW32__\n'>
                        <'# ifdef __STRICT_ANSI__\n'>
                        <'int _putenv (const char *);\n'>
                        <'# endif\n'>
                        <'#elif defined __CYGWIN__\n'>
                        <'# ifdef __STRICT_ANSI__\n'>
                        <'char *realpath (const char *, char *);\n'>
                        <'int putenv (char *);\n'>
                        <'int setenv (const char *, const char *, int);\n'>
                        <'# endif\n'>
                        <'/* #elif defined other_platform || defined ... */\n'>
                        <'#endif\n'>
                        <'\n'>
                        <'/* portability defines, excluding path handling macros */\n'>
                        <'#if defined _MSC_VER\n'>
                        <'# define setmode _setmode\n'>
                        <'# define stat    _stat\n'>
                        <'# define chmod   _chmod\n'>
                        <'# define getcwd  _getcwd\n'>
                        <'# define putenv  _putenv\n'>
                        <'# define S_IXUSR _S_IEXEC\n'>
                        <'#elif defined __MINGW32__\n'>
                        <'# define setmode _setmode\n'>
                        <'# define stat    _stat\n'>
                        <'# define chmod   _chmod\n'>
                        <'# define getcwd  _getcwd\n'>
                        <'# define putenv  _putenv\n'>
                        <'#elif defined __CYGWIN__\n'>
                        <'# define HAVE_SETENV\n'>
                        <'# define FOPEN_WB "wb"\n'>
                        <'/* #elif defined other platforms ... */\n'>
                        <'#endif\n'>
                        <'\n'>
                        <'#if defined PATH_MAX\n'>
                        <'# define LT_PATHMAX PATH_MAX\n'>
                        <'#elif defined MAXPATHLEN\n'>
                        <'# define LT_PATHMAX MAXPATHLEN\n'>
                        <'#else\n'>
                        <'# define LT_PATHMAX 1024\n'>
                        <'#endif\n'>
                        <'\n'>
                        <'#ifndef S_IXOTH\n'>
                        <'# define S_IXOTH 0\n'>
                        <'#endif\n'>
                        <'#ifndef S_IXGRP\n'>
                        <'# define S_IXGRP 0\n'>
                        <'#endif\n'>
                        <'\n'>
                        <'/* path handling portability macros */\n'>
                        <'#ifndef DIR_SEPARATOR\n'>
                        <'# define DIR_SEPARATOR \'/\'\n'>
                        <'# define PATH_SEPARATOR \':\'\n'>
                        <'#endif\n'>
                        <'\n'>
                        <'#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \\\n'>
                        <'  defined __OS2__\n'>
                        <'# define HAVE_DOS_BASED_FILE_SYSTEM\n'>
                        <'# define FOPEN_WB "wb"\n'>
                        <'# ifndef DIR_SEPARATOR_2\n'>
                        <'#  define DIR_SEPARATOR_2 \'\\\\\'\n'>
                        <'# endif\n'>
                        <'# ifndef PATH_SEPARATOR_2\n'>
                        <'#  define PATH_SEPARATOR_2 \';\'\n'>
                        <'# endif\n'>
                        <'#endif\n'>
                        <'\n'>
                        <'#ifndef DIR_SEPARATOR_2\n'>
                        <'# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)\n'>
                        <'#else /* DIR_SEPARATOR_2 */\n'>
                        <'# define IS_DIR_SEPARATOR(ch) \\\n'>
                        <'\t(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))\n'>
                        <'#endif /* DIR_SEPARATOR_2 */\n'>
                        <'\n'>
                        <'#ifndef PATH_SEPARATOR_2\n'>
                        <'# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)\n'>
                        <'#else /* PATH_SEPARATOR_2 */\n'>
                        <'# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)\n'>
                        <'#endif /* PATH_SEPARATOR_2 */\n'>
                        <'\n'>
                        <'#ifndef FOPEN_WB\n'>
                        <'# define FOPEN_WB "w"\n'>
                        <'#endif\n'>
                        <'#ifndef _O_BINARY\n'>
                        <'# define _O_BINARY 0\n'>
                        <'#endif\n'>
                        <'\n'>
                        <
'#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))\n'
                        >
                        <'#define XFREE(stale) do { \\\n'>
                        <'  if (stale) { free (stale); stale = 0; } \\\n'>
                        <'} while (0)\n'>
                        <'\n'>
                        <'#if defined LT_DEBUGWRAPPER\n'>
                        <'static int lt_debug = 1;\n'>
                        <'#else\n'>
                        <'static int lt_debug = 0;\n'>
                        <'#endif\n'>
                        <'\n'>
                        <
'const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */\n'
                        >
                        <'\n'>
                        <'void *xmalloc (size_t num);\n'>
                        <'char *xstrdup (const char *string);\n'>
                        <'const char *base_name (const char *name);\n'>
                        <'char *find_executable (const char *wrapper);\n'>
                        <'char *chase_symlinks (const char *pathspec);\n'>
                        <'int make_executable (const char *path);\n'>
                        <'int check_executable (const char *path);\n'>
                        <'char *strendzap (char *str, const char *pat);\n'>
                        <
'void lt_debugprintf (const char *file, int line, const char *fmt, ...);\n'
                        >
                        <'void lt_fatal (const char *file, int line, const char *message, ...);\n'>
                        <'static const char *nonnull (const char *s);\n'>
                        <'static const char *nonempty (const char *s);\n'>
                        <'void lt_setenv (const char *name, const char *value);\n'>
                        <
'char *lt_extend_str (const char *orig_value, const char *add, int to_end);\n'
                        >
                        <'void lt_update_exe_path (const char *name, const char *value);\n'>
                        <'void lt_update_lib_path (const char *name, const char *value);\n'>
                        <'char **prepare_spawn (char **argv);\n'>
                        <'void lt_dump_script (FILE *f);\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)\n'>
                        <'# define externally_visible volatile\n'>
                        <'#else\n'>
                        <
'# define externally_visible __attribute__((externally_visible)) volatile\n'
                        >
                        <'#endif\n'>
                        <'externally_visible const char * MAGIC_EXE = '>
                        <Id.Right_DoubleQuote '"'>
                        ($ Id.VSub_DollarName magic_exe)
                        <Id.Right_DoubleQuote '"'>
                        <';\n'>
                        <'const char * LIB_PATH_VARNAME = '>
                        <Id.Right_DoubleQuote '"'>
                        ($ Id.VSub_DollarName shlibpath_var)
                        <Id.Right_DoubleQuote '"'>
                        <';\n'>
                      ]
                    )
                )
              ]
              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.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<yes>}
                                    {<Id.Lit_Equals '='>}
                                    {(DQ ($ Id.VSub_DollarName shlibpath_overrides_runpath))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName shlibpath_var))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName temp_rpath))}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <func_to_host_path>
                      more_env: []
                      words: [{<func_to_host_path>} {(DQ ($ Id.VSub_DollarName temp_rpath))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <cat>
                      more_env: []
                      words: [{<cat>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<EOF>}
                              here_end_tok: <Id.Undefined_Tok ''>
                              stdin_parts: [
                                <'const char * LIB_PATH_VALUE   = '>
                                <Id.Right_DoubleQuote '"'>
                                ($ Id.VSub_DollarName func_to_host_path_result)
                                <Id.Right_DoubleQuote '"'>
                                <';\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [27785 27818]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <cat>
                  more_env: []
                  words: [{<cat>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_DLess '<<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: 
                        (redir_param.HereDoc
                          here_begin: {(DQ <EOF>)}
                          here_end_tok: <Id.Undefined_Tok ''>
                          stdin_parts: [<'const char * LIB_PATH_VALUE   = "";\n'>]
                        )
                    )
                  ]
                  do_fork: T
                )
              ]
              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: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName dllsearchpath))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <func_to_host_path>
                      more_env: []
                      words: [{<func_to_host_path>} {(DQ ($ Id.VSub_DollarName dllsearchpath) <':'>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <cat>
                      more_env: []
                      words: [{<cat>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<EOF>}
                              here_end_tok: <Id.Undefined_Tok ''>
                              stdin_parts: [
                                <'const char * EXE_PATH_VARNAME = '>
                                <Id.Right_DoubleQuote '"'>
                                <PATH>
                                <Id.Right_DoubleQuote '"'>
                                <';\n'>
                                <'const char * EXE_PATH_VALUE   = '>
                                <Id.Right_DoubleQuote '"'>
                                ($ Id.VSub_DollarName func_to_host_path_result)
                                <Id.Right_DoubleQuote '"'>
                                <';\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [27858 27869]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <cat>
                  more_env: []
                  words: [{<cat>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_DLess '<<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: 
                        (redir_param.HereDoc
                          here_begin: {(DQ <EOF>)}
                          here_end_tok: <Id.Undefined_Tok ''>
                          stdin_parts: [
                            <'const char * EXE_PATH_VARNAME = "";\n'>
                            <'const char * EXE_PATH_VALUE   = "";\n'>
                          ]
                        )
                    )
                  ]
                  do_fork: T
                )
              ]
              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: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<yes>}
                                {<Id.Lit_Equals '='>}
                                {(DQ ($ Id.VSub_DollarName fast_install))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <cat>
                      more_env: []
                      words: [{<cat>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<EOF>}
                              here_end_tok: <Id.Undefined_Tok ''>
                              stdin_parts: [
                                <'const char * TARGET_PROGRAM_NAME = '>
                                <Id.Right_DoubleQuote '"'>
                                <lt->
                                ($ Id.VSub_DollarName outputname)
                                <Id.Right_DoubleQuote '"'>
                                <'; /* hopefully, no .exe */\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [27916 27929]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <cat>
                  more_env: []
                  words: [{<cat>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_DLess '<<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: 
                        (redir_param.HereDoc
                          here_begin: {<EOF>}
                          here_end_tok: <Id.Undefined_Tok ''>
                          stdin_parts: [
                            <'const char * TARGET_PROGRAM_NAME = '>
                            <Id.Right_DoubleQuote '"'>
                            ($ Id.VSub_DollarName outputname)
                            <Id.Right_DoubleQuote '"'>
                            <'; /* hopefully, no .exe */\n'>
                          ]
                        )
                    )
                  ]
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(DQ <EOF>)}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'\n'>
                        <'#define LTWRAPPER_OPTION_PREFIX         "--lt-"\n'>
                        <'\n'>
                        <'static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;\n'>
                        <
'static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";\n'
                        >
                        <
'static const char *debug_opt            = LTWRAPPER_OPTION_PREFIX "debug";\n'
                        >
                        <'\n'>
                        <'int\n'>
                        <'main (int argc, char *argv[])\n'>
                        <'{\n'>
                        <'  char **newargz;\n'>
                        <'  int  newargc;\n'>
                        <'  char *tmp_pathspec;\n'>
                        <'  char *actual_cwrapper_path;\n'>
                        <'  char *actual_cwrapper_name;\n'>
                        <'  char *target_name;\n'>
                        <'  char *lt_argv_zero;\n'>
                        <'  int rval = 127;\n'>
                        <'\n'>
                        <'  int i;\n'>
                        <'\n'>
                        <'  program_name = (char *) xstrdup (base_name (argv[0]));\n'>
                        <'  newargz = XMALLOC (char *, (size_t) argc + 1);\n'>
                        <'\n'>
                        <'  /* very simple arg parsing; don\'t want to rely on getopt\n'>
                        <'   * also, copy all non cwrapper options to newargz, except\n'>
                        <'   * argz[0], which is handled differently\n'>
                        <'   */\n'>
                        <'  newargc=0;\n'>
                        <'  for (i = 1; i < argc; i++)\n'>
                        <'    {\n'>
                        <'      if (STREQ (argv[i], dumpscript_opt))\n'>
                        <'\t{\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}
                        {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'          setmode(1,_O_BINARY);'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(DQ <EOF>)}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'\t  lt_dump_script (stdout);\n'>
                        <'\t  return 0;\n'>
                        <'\t}\n'>
                        <'      if (STREQ (argv[i], debug_opt))\n'>
                        <'\t{\n'>
                        <'          lt_debug = 1;\n'>
                        <'          continue;\n'>
                        <'\t}\n'>
                        <'      if (STREQ (argv[i], ltwrapper_option_prefix))\n'>
                        <'        {\n'>
                        <
'          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX\n'
                        >
                        <
'             namespace, but it is not one of the ones we know about and\n'
                        >
                        <
'             have already dealt with, above (inluding dump-script), then\n'
                        >
                        <
'             report an error. Otherwise, targets might begin to believe\n'
                        >
                        <
'             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX\n'
                        >
                        <
'             namespace. The first time any user complains about this, we\'ll\n'
                        >
                        <
'             need to make LTWRAPPER_OPTION_PREFIX a configure-time option\n'
                        >
                        <'             or a configure.ac-settable value.\n'>
                        <'           */\n'>
                        <'          lt_fatal (__FILE__, __LINE__,\n'>
                        <'\t\t    "unrecognized %s option: \'%s\'",\n'>
                        <'                    ltwrapper_option_prefix, argv[i]);\n'>
                        <'        }\n'>
                        <'      /* otherwise ... */\n'>
                        <'      newargz[++newargc] = xstrdup (argv[i]);\n'>
                        <'    }\n'>
                        <'  newargz[++newargc] = NULL;\n'>
                        <'\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'  /* The GNU banner must be the first non-error debug message */\n'>
                        <'  lt_debugprintf (__FILE__, __LINE__, '>
                        <Id.Right_DoubleQuote '"'>
                        <'libtool wrapper (GNU '>
                        ($ Id.VSub_DollarName PACKAGE)
                        <') '>
                        ($ Id.VSub_DollarName VERSION)
                        <Id.Lit_BadBackslash '\\'>
                        <n>
                        <Id.Right_DoubleQuote '"'>
                        <');\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(DQ <EOF>)}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <
'  lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\\n", argv[0]);\n'
                        >
                        <
'  lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\\n", program_name);\n'
                        >
                        <'\n'>
                        <'  tmp_pathspec = find_executable (argv[0]);\n'>
                        <'  if (tmp_pathspec == NULL)\n'>
                        <'    lt_fatal (__FILE__, __LINE__, "couldn\'t find %s", argv[0]);\n'>
                        <'  lt_debugprintf (__FILE__, __LINE__,\n'>
                        <'                  "(main) found exe (before symlink chase) at: %s\\n",\n'>
                        <'\t\t  tmp_pathspec);\n'>
                        <'\n'>
                        <'  actual_cwrapper_path = chase_symlinks (tmp_pathspec);\n'>
                        <'  lt_debugprintf (__FILE__, __LINE__,\n'>
                        <'                  "(main) found exe (after symlink chase) at: %s\\n",\n'>
                        <'\t\t  actual_cwrapper_path);\n'>
                        <'  XFREE (tmp_pathspec);\n'>
                        <'\n'>
                        <'  actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));\n'>
                        <'  strendzap (actual_cwrapper_path, actual_cwrapper_name);\n'>
                        <'\n'>
                        <'  /* wrapper name transforms */\n'>
                        <'  strendzap (actual_cwrapper_name, ".exe");\n'>
                        <'  tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);\n'>
                        <'  XFREE (actual_cwrapper_name);\n'>
                        <'  actual_cwrapper_name = tmp_pathspec;\n'>
                        <'  tmp_pathspec = 0;\n'>
                        <'\n'>
                        <
'  /* target_name transforms -- use actual target program name; might have lt- prefix */\n'
                        >
                        <'  target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));\n'>
                        <'  strendzap (target_name, ".exe");\n'>
                        <'  tmp_pathspec = lt_extend_str (target_name, ".exe", 1);\n'>
                        <'  XFREE (target_name);\n'>
                        <'  target_name = tmp_pathspec;\n'>
                        <'  tmp_pathspec = 0;\n'>
                        <'\n'>
                        <'  lt_debugprintf (__FILE__, __LINE__,\n'>
                        <'\t\t  "(main) libtool target name: %s\\n",\n'>
                        <'\t\t  target_name);\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'  newargz[0] =\n'>
                        <'    XMALLOC (char, (strlen (actual_cwrapper_path) +\n'>
                        <'\t\t    strlen ('>
                        <Id.Right_DoubleQuote '"'>
                        ($ Id.VSub_DollarName objdir)
                        <Id.Right_DoubleQuote '"'>
                        <') + 1 + strlen (actual_cwrapper_name) + 1));\n'>
                        <'  strcpy (newargz[0], actual_cwrapper_path);\n'>
                        <'  strcat (newargz[0], '>
                        <Id.Right_DoubleQuote '"'>
                        ($ Id.VSub_DollarName objdir)
                        <Id.Right_DoubleQuote '"'>
                        <');\n'>
                        <'  strcat (newargz[0], '>
                        <Id.Right_DoubleQuote '"'>
                        <'/'>
                        <Id.Right_DoubleQuote '"'>
                        <');\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(DQ <EOF>)}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'  /* stop here, and copy so we don\'t have to do this twice */\n'>
                        <'  tmp_pathspec = xstrdup (newargz[0]);\n'>
                        <'\n'>
                        <'  /* do NOT want the lt- prefix here, so use actual_cwrapper_name */\n'>
                        <'  strcat (newargz[0], actual_cwrapper_name);\n'>
                        <'\n'>
                        <'  /* DO want the lt- prefix here if it exists, so use target_name */\n'>
                        <'  lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);\n'>
                        <'  XFREE (tmp_pathspec);\n'>
                        <'  tmp_pathspec = NULL;\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName host_os)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <mingw>
                  pattern: (pat.Words words:[{<mingw> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <cat>
                      more_env: []
                      words: [{<cat>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {(DQ <EOF>)}
                              here_end_tok: <Id.Undefined_Tok ''>
                              stdin_parts: [
                                <'  {\n'>
                                <'    char* p;\n'>
                                <'    while ((p = strchr (newargz[0], \'\\\\\')) != NULL)\n'>
                                <'      {\n'>
                                <'\t*p = \'/\';\n'>
                                <'      }\n'>
                                <'    while ((p = strchr (lt_argv_zero, \'\\\\\')) != NULL)\n'>
                                <'      {\n'>
                                <'\t*p = \'/\';\n'>
                                <'      }\n'>
                                <'  }\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(DQ <EOF>)}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'  XFREE (target_name);\n'>
                        <'  XFREE (actual_cwrapper_path);\n'>
                        <'  XFREE (actual_cwrapper_name);\n'>
                        <'\n'>
                        <'  lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */\n'>
                        <'  lt_setenv ("DUALCASE", "1");  /* for MSK sh */\n'>
                        <'  /* Update the DLL searchpath.  EXE_PATH_VALUE ($dllsearchpath) must\n'>
                        <
'     be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)\n'
                        >
                        <'     because on Windows, both *_VARNAMEs are PATH but uninstalled\n'>
                        <'     libraries must come first. */\n'>
                        <'  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);\n'>
                        <'  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);\n'>
                        <'\n'>
                        <'  lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\\n",\n'>
                        <'\t\t  nonnull (lt_argv_zero));\n'>
                        <'  for (i = 0; i < newargc; i++)\n'>
                        <'    {\n'>
                        <'      lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\\n",\n'>
                        <'\t\t      i, nonnull (newargz[i]));\n'>
                        <'    }\n'>
                        <'\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName host_os)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <mingw>
                  pattern: (pat.Words words:[{<mingw> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <cat>
                      more_env: []
                      words: [{<cat>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {(DQ <EOF>)}
                              here_end_tok: <Id.Undefined_Tok ''>
                              stdin_parts: [
                                <
'  /* execv doesn\'t actually work on mingw as expected on unix */\n'
                                >
                                <'  newargz = prepare_spawn (newargz);\n'>
                                <
'  rval = (int) _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);\n'
                                >
                                <'  if (rval == -1)\n'>
                                <'    {\n'>
                                <'      /* failed to start process */\n'>
                                <'      lt_debugprintf (__FILE__, __LINE__,\n'>
                                <'\t\t      "(main) failed to launch target \\"%s\\": %s\\n",\n'>
                                <'\t\t      lt_argv_zero, nonnull (strerror (errno)));\n'>
                                <'      return 127;\n'>
                                <'    }\n'>
                                <'  return rval;\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <cat>
                      more_env: []
                      words: [{<cat>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {(DQ <EOF>)}
                              here_end_tok: <Id.Undefined_Tok ''>
                              stdin_parts: [
                                <'  execv (lt_argv_zero, newargz);\n'>
                                <'  return rval; /* =127, but avoids unused variable warning */\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(DQ <EOF>)}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'}\n'>
                        <'\n'>
                        <'void *\n'>
                        <'xmalloc (size_t num)\n'>
                        <'{\n'>
                        <'  void *p = (void *) malloc (num);\n'>
                        <'  if (!p)\n'>
                        <'    lt_fatal (__FILE__, __LINE__, "memory exhausted");\n'>
                        <'\n'>
                        <'  return p;\n'>
                        <'}\n'>
                        <'\n'>
                        <'char *\n'>
                        <'xstrdup (const char *string)\n'>
                        <'{\n'>
                        <'  return string ? strcpy ((char *) xmalloc (strlen (string) + 1),\n'>
                        <'\t\t\t  string) : NULL;\n'>
                        <'}\n'>
                        <'\n'>
                        <'const char *\n'>
                        <'base_name (const char *name)\n'>
                        <'{\n'>
                        <'  const char *base;\n'>
                        <'\n'>
                        <'#if defined HAVE_DOS_BASED_FILE_SYSTEM\n'>
                        <'  /* Skip over the disk name in MSDOS pathnames. */\n'>
                        <'  if (isalpha ((unsigned char) name[0]) && name[1] == \':\')\n'>
                        <'    name += 2;\n'>
                        <'#endif\n'>
                        <'\n'>
                        <'  for (base = name; *name; name++)\n'>
                        <'    if (IS_DIR_SEPARATOR (*name))\n'>
                        <'      base = name + 1;\n'>
                        <'  return base;\n'>
                        <'}\n'>
                        <'\n'>
                        <'int\n'>
                        <'check_executable (const char *path)\n'>
                        <'{\n'>
                        <'  struct stat st;\n'>
                        <'\n'>
                        <'  lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\\n",\n'>
                        <'                  nonempty (path));\n'>
                        <'  if ((!path) || (!*path))\n'>
                        <'    return 0;\n'>
                        <'\n'>
                        <'  if ((stat (path, &st) >= 0)\n'>
                        <'      && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))\n'>
                        <'    return 1;\n'>
                        <'  else\n'>
                        <'    return 0;\n'>
                        <'}\n'>
                        <'\n'>
                        <'int\n'>
                        <'make_executable (const char *path)\n'>
                        <'{\n'>
                        <'  int rval = 0;\n'>
                        <'  struct stat st;\n'>
                        <'\n'>
                        <'  lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\\n",\n'>
                        <'                  nonempty (path));\n'>
                        <'  if ((!path) || (!*path))\n'>
                        <'    return 0;\n'>
                        <'\n'>
                        <'  if (stat (path, &st) >= 0)\n'>
                        <'    {\n'>
                        <'      rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);\n'>
                        <'    }\n'>
                        <'  return rval;\n'>
                        <'}\n'>
                        <'\n'>
                        <'/* Searches for the full path of the wrapper.  Returns\n'>
                        <'   newly allocated full path name if found, NULL otherwise\n'>
                        <'   Does not chase symlinks, even on platforms that support them.\n'>
                        <'*/\n'>
                        <'char *\n'>
                        <'find_executable (const char *wrapper)\n'>
                        <'{\n'>
                        <'  int has_slash = 0;\n'>
                        <'  const char *p;\n'>
                        <'  const char *p_next;\n'>
                        <'  /* static buffer for getcwd */\n'>
                        <'  char tmp[LT_PATHMAX + 1];\n'>
                        <'  size_t tmp_len;\n'>
                        <'  char *concat_name;\n'>
                        <'\n'>
                        <'  lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\\n",\n'>
                        <'                  nonempty (wrapper));\n'>
                        <'\n'>
                        <'  if ((wrapper == NULL) || (*wrapper == \'\\0\'))\n'>
                        <'    return NULL;\n'>
                        <'\n'>
                        <'  /* Absolute path? */\n'>
                        <'#if defined HAVE_DOS_BASED_FILE_SYSTEM\n'>
                        <'  if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == \':\')\n'>
                        <'    {\n'>
                        <'      concat_name = xstrdup (wrapper);\n'>
                        <'      if (check_executable (concat_name))\n'>
                        <'\treturn concat_name;\n'>
                        <'      XFREE (concat_name);\n'>
                        <'    }\n'>
                        <'  else\n'>
                        <'    {\n'>
                        <'#endif\n'>
                        <'      if (IS_DIR_SEPARATOR (wrapper[0]))\n'>
                        <'\t{\n'>
                        <'\t  concat_name = xstrdup (wrapper);\n'>
                        <'\t  if (check_executable (concat_name))\n'>
                        <'\t    return concat_name;\n'>
                        <'\t  XFREE (concat_name);\n'>
                        <'\t}\n'>
                        <'#if defined HAVE_DOS_BASED_FILE_SYSTEM\n'>
                        <'    }\n'>
                        <'#endif\n'>
                        <'\n'>
                        <'  for (p = wrapper; *p; p++)\n'>
                        <'    if (*p == \'/\')\n'>
                        <'      {\n'>
                        <'\thas_slash = 1;\n'>
                        <'\tbreak;\n'>
                        <'      }\n'>
                        <'  if (!has_slash)\n'>
                        <'    {\n'>
                        <'      /* no slashes; search PATH */\n'>
                        <'      const char *path = getenv ("PATH");\n'>
                        <'      if (path != NULL)\n'>
                        <'\t{\n'>
                        <'\t  for (p = path; *p; p = p_next)\n'>
                        <'\t    {\n'>
                        <'\t      const char *q;\n'>
                        <'\t      size_t p_len;\n'>
                        <'\t      for (q = p; *q; q++)\n'>
                        <'\t\tif (IS_PATH_SEPARATOR (*q))\n'>
                        <'\t\t  break;\n'>
                        <'\t      p_len = (size_t) (q - p);\n'>
                        <'\t      p_next = (*q == \'\\0\' ? q : q + 1);\n'>
                        <'\t      if (p_len == 0)\n'>
                        <'\t\t{\n'>
                        <'\t\t  /* empty path: current directory */\n'>
                        <'\t\t  if (getcwd (tmp, LT_PATHMAX) == NULL)\n'>
                        <'\t\t    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",\n'>
                        <'                              nonnull (strerror (errno)));\n'>
                        <'\t\t  tmp_len = strlen (tmp);\n'>
                        <'\t\t  concat_name =\n'>
                        <'\t\t    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);\n'>
                        <'\t\t  memcpy (concat_name, tmp, tmp_len);\n'>
                        <'\t\t  concat_name[tmp_len] = \'/\';\n'>
                        <'\t\t  strcpy (concat_name + tmp_len + 1, wrapper);\n'>
                        <'\t\t}\n'>
                        <'\t      else\n'>
                        <'\t\t{\n'>
                        <'\t\t  concat_name =\n'>
                        <'\t\t    XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);\n'>
                        <'\t\t  memcpy (concat_name, p, p_len);\n'>
                        <'\t\t  concat_name[p_len] = \'/\';\n'>
                        <'\t\t  strcpy (concat_name + p_len + 1, wrapper);\n'>
                        <'\t\t}\n'>
                        <'\t      if (check_executable (concat_name))\n'>
                        <'\t\treturn concat_name;\n'>
                        <'\t      XFREE (concat_name);\n'>
                        <'\t    }\n'>
                        <'\t}\n'>
                        <'      /* not found in PATH; assume curdir */\n'>
                        <'    }\n'>
                        <'  /* Relative path | not found in path: prepend cwd */\n'>
                        <'  if (getcwd (tmp, LT_PATHMAX) == NULL)\n'>
                        <'    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",\n'>
                        <'              nonnull (strerror (errno)));\n'>
                        <'  tmp_len = strlen (tmp);\n'>
                        <'  concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);\n'>
                        <'  memcpy (concat_name, tmp, tmp_len);\n'>
                        <'  concat_name[tmp_len] = \'/\';\n'>
                        <'  strcpy (concat_name + tmp_len + 1, wrapper);\n'>
                        <'\n'>
                        <'  if (check_executable (concat_name))\n'>
                        <'    return concat_name;\n'>
                        <'  XFREE (concat_name);\n'>
                        <'  return NULL;\n'>
                        <'}\n'>
                        <'\n'>
                        <'char *\n'>
                        <'chase_symlinks (const char *pathspec)\n'>
                        <'{\n'>
                        <'#ifndef S_ISLNK\n'>
                        <'  return xstrdup (pathspec);\n'>
                        <'#else\n'>
                        <'  char buf[LT_PATHMAX];\n'>
                        <'  struct stat s;\n'>
                        <'  char *tmp_pathspec = xstrdup (pathspec);\n'>
                        <'  char *p;\n'>
                        <'  int has_symlinks = 0;\n'>
                        <'  while (strlen (tmp_pathspec) && !has_symlinks)\n'>
                        <'    {\n'>
                        <'      lt_debugprintf (__FILE__, __LINE__,\n'>
                        <'\t\t      "checking path component for symlinks: %s\\n",\n'>
                        <'\t\t      tmp_pathspec);\n'>
                        <'      if (lstat (tmp_pathspec, &s) == 0)\n'>
                        <'\t{\n'>
                        <'\t  if (S_ISLNK (s.st_mode) != 0)\n'>
                        <'\t    {\n'>
                        <'\t      has_symlinks = 1;\n'>
                        <'\t      break;\n'>
                        <'\t    }\n'>
                        <'\n'>
                        <'\t  /* search backwards for last DIR_SEPARATOR */\n'>
                        <'\t  p = tmp_pathspec + strlen (tmp_pathspec) - 1;\n'>
                        <'\t  while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))\n'>
                        <'\t    p--;\n'>
                        <'\t  if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))\n'>
                        <'\t    {\n'>
                        <'\t      /* no more DIR_SEPARATORS left */\n'>
                        <'\t      break;\n'>
                        <'\t    }\n'>
                        <'\t  *p = \'\\0\';\n'>
                        <'\t}\n'>
                        <'      else\n'>
                        <'\t{\n'>
                        <'\t  lt_fatal (__FILE__, __LINE__,\n'>
                        <'\t\t    "error accessing file \\"%s\\": %s",\n'>
                        <'\t\t    tmp_pathspec, nonnull (strerror (errno)));\n'>
                        <'\t}\n'>
                        <'    }\n'>
                        <'  XFREE (tmp_pathspec);\n'>
                        <'\n'>
                        <'  if (!has_symlinks)\n'>
                        <'    {\n'>
                        <'      return xstrdup (pathspec);\n'>
                        <'    }\n'>
                        <'\n'>
                        <'  tmp_pathspec = realpath (pathspec, buf);\n'>
                        <'  if (tmp_pathspec == 0)\n'>
                        <'    {\n'>
                        <'      lt_fatal (__FILE__, __LINE__,\n'>
                        <'\t\t"could not follow symlinks for %s", pathspec);\n'>
                        <'    }\n'>
                        <'  return xstrdup (tmp_pathspec);\n'>
                        <'#endif\n'>
                        <'}\n'>
                        <'\n'>
                        <'char *\n'>
                        <'strendzap (char *str, const char *pat)\n'>
                        <'{\n'>
                        <'  size_t len, patlen;\n'>
                        <'\n'>
                        <'  assert (str != NULL);\n'>
                        <'  assert (pat != NULL);\n'>
                        <'\n'>
                        <'  len = strlen (str);\n'>
                        <'  patlen = strlen (pat);\n'>
                        <'\n'>
                        <'  if (patlen <= len)\n'>
                        <'    {\n'>
                        <'      str += len - patlen;\n'>
                        <'      if (STREQ (str, pat))\n'>
                        <'\t*str = \'\\0\';\n'>
                        <'    }\n'>
                        <'  return str;\n'>
                        <'}\n'>
                        <'\n'>
                        <'void\n'>
                        <'lt_debugprintf (const char *file, int line, const char *fmt, ...)\n'>
                        <'{\n'>
                        <'  va_list args;\n'>
                        <'  if (lt_debug)\n'>
                        <'    {\n'>
                        <'      (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);\n'>
                        <'      va_start (args, fmt);\n'>
                        <'      (void) vfprintf (stderr, fmt, args);\n'>
                        <'      va_end (args);\n'>
                        <'    }\n'>
                        <'}\n'>
                        <'\n'>
                        <'static void\n'>
                        <'lt_error_core (int exit_status, const char *file,\n'>
                        <'\t       int line, const char *mode,\n'>
                        <'\t       const char *message, va_list ap)\n'>
                        <'{\n'>
                        <'  fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);\n'>
                        <'  vfprintf (stderr, message, ap);\n'>
                        <'  fprintf (stderr, ".\\n");\n'>
                        <'\n'>
                        <'  if (exit_status >= 0)\n'>
                        <'    exit (exit_status);\n'>
                        <'}\n'>
                        <'\n'>
                        <'void\n'>
                        <'lt_fatal (const char *file, int line, const char *message, ...)\n'>
                        <'{\n'>
                        <'  va_list ap;\n'>
                        <'  va_start (ap, message);\n'>
                        <'  lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);\n'>
                        <'  va_end (ap);\n'>
                        <'}\n'>
                        <'\n'>
                        <'static const char *\n'>
                        <'nonnull (const char *s)\n'>
                        <'{\n'>
                        <'  return s ? s : "(null)";\n'>
                        <'}\n'>
                        <'\n'>
                        <'static const char *\n'>
                        <'nonempty (const char *s)\n'>
                        <'{\n'>
                        <'  return (s && !*s) ? "(empty)" : nonnull (s);\n'>
                        <'}\n'>
                        <'\n'>
                        <'void\n'>
                        <'lt_setenv (const char *name, const char *value)\n'>
                        <'{\n'>
                        <'  lt_debugprintf (__FILE__, __LINE__,\n'>
                        <'\t\t  "(lt_setenv) setting \'%s\' to \'%s\'\\n",\n'>
                        <'                  nonnull (name), nonnull (value));\n'>
                        <'  {\n'>
                        <'#ifdef HAVE_SETENV\n'>
                        <'    /* always make a copy, for consistency with !HAVE_SETENV */\n'>
                        <'    char *str = xstrdup (value);\n'>
                        <'    setenv (name, str, 1);\n'>
                        <'#else\n'>
                        <'    size_t len = strlen (name) + 1 + strlen (value) + 1;\n'>
                        <'    char *str = XMALLOC (char, len);\n'>
                        <'    sprintf (str, "%s=%s", name, value);\n'>
                        <'    if (putenv (str) != EXIT_SUCCESS)\n'>
                        <'      {\n'>
                        <'        XFREE (str);\n'>
                        <'      }\n'>
                        <'#endif\n'>
                        <'  }\n'>
                        <'}\n'>
                        <'\n'>
                        <'char *\n'>
                        <'lt_extend_str (const char *orig_value, const char *add, int to_end)\n'>
                        <'{\n'>
                        <'  char *new_value;\n'>
                        <'  if (orig_value && *orig_value)\n'>
                        <'    {\n'>
                        <'      size_t orig_value_len = strlen (orig_value);\n'>
                        <'      size_t add_len = strlen (add);\n'>
                        <'      new_value = XMALLOC (char, add_len + orig_value_len + 1);\n'>
                        <'      if (to_end)\n'>
                        <'        {\n'>
                        <'          strcpy (new_value, orig_value);\n'>
                        <'          strcpy (new_value + orig_value_len, add);\n'>
                        <'        }\n'>
                        <'      else\n'>
                        <'        {\n'>
                        <'          strcpy (new_value, add);\n'>
                        <'          strcpy (new_value + add_len, orig_value);\n'>
                        <'        }\n'>
                        <'    }\n'>
                        <'  else\n'>
                        <'    {\n'>
                        <'      new_value = xstrdup (add);\n'>
                        <'    }\n'>
                        <'  return new_value;\n'>
                        <'}\n'>
                        <'\n'>
                        <'void\n'>
                        <'lt_update_exe_path (const char *name, const char *value)\n'>
                        <'{\n'>
                        <'  lt_debugprintf (__FILE__, __LINE__,\n'>
                        <'\t\t  "(lt_update_exe_path) modifying \'%s\' by prepending \'%s\'\\n",\n'>
                        <'                  nonnull (name), nonnull (value));\n'>
                        <'\n'>
                        <'  if (name && *name && value && *value)\n'>
                        <'    {\n'>
                        <'      char *new_value = lt_extend_str (getenv (name), value, 0);\n'>
                        <'      /* some systems can\'t cope with a \':\'-terminated path #\' */\n'>
                        <'      size_t len = strlen (new_value);\n'>
                        <'      while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1]))\n'>
                        <'        {\n'>
                        <'          new_value[--len] = \'\\0\';\n'>
                        <'        }\n'>
                        <'      lt_setenv (name, new_value);\n'>
                        <'      XFREE (new_value);\n'>
                        <'    }\n'>
                        <'}\n'>
                        <'\n'>
                        <'void\n'>
                        <'lt_update_lib_path (const char *name, const char *value)\n'>
                        <'{\n'>
                        <'  lt_debugprintf (__FILE__, __LINE__,\n'>
                        <'\t\t  "(lt_update_lib_path) modifying \'%s\' by prepending \'%s\'\\n",\n'>
                        <'                  nonnull (name), nonnull (value));\n'>
                        <'\n'>
                        <'  if (name && *name && value && *value)\n'>
                        <'    {\n'>
                        <'      char *new_value = lt_extend_str (getenv (name), value, 0);\n'>
                        <'      lt_setenv (name, new_value);\n'>
                        <'      XFREE (new_value);\n'>
                        <'    }\n'>
                        <'}\n'>
                        <'\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName host_os)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <mingw>
                  pattern: (pat.Words words:[{<mingw> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <cat>
                      more_env: []
                      words: [{<cat>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {(DQ <EOF>)}
                              here_end_tok: <Id.Undefined_Tok ''>
                              stdin_parts: [
                                <'\n'>
                                <'/* Prepares an argument vector before calling spawn().\n'>
                                <
'   Note that spawn() does not by itself call the command interpreter\n'
                                >
                                <'     (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :\n'>
                                <
'      ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);\n'
                                >
                                <'         GetVersionEx(&v);\n'>
                                <'         v.dwPlatformId == VER_PLATFORM_WIN32_NT;\n'>
                                <'      }) ? "cmd.exe" : "command.com").\n'>
                                <
'   Instead it simply concatenates the arguments, separated by \' \', and calls\n'
                                >
                                <
'   CreateProcess().  We must quote the arguments since Win32 CreateProcess()\n'
                                >
                                <
'   interprets characters like \' \', \'\\t\', \'\\\\\', \'"\' (but not \'<\' and \'>\') in a\n'
                                >
                                <'   special way:\n'>
                                <
'   - Space and tab are interpreted as delimiters. They are not treated as\n'
                                >
                                <
'     delimiters if they are surrounded by double quotes: "...".\n'
                                >
                                <
'   - Unescaped double quotes are removed from the input. Their only effect is\n'
                                >
                                <
'     that within double quotes, space and tab are treated like normal\n'
                                >
                                <'     characters.\n'>
                                <
'   - Backslashes not followed by double quotes are not special.\n'
                                >
                                <'   - But 2*n+1 backslashes followed by a double quote become\n'>
                                <'     n backslashes followed by a double quote (n >= 0):\n'>
                                <'       \\" -> "\n'>
                                <'       \\\\\\" -> \\"\n'>
                                <'       \\\\\\\\\\" -> \\\\"\n'>
                                <' */\n'>
                                <
'#define SHELL_SPECIAL_CHARS "\\"\\\\ \\001\\002\\003\\004\\005\\006\\007\\010\\011\\012\\013\\014\\015\\016\\017\\020\\021\\022\\023\\024\\025\\026\\027\\030\\031\\032\\033\\034\\035\\036\\037"\n'
                                >
                                <
'#define SHELL_SPACE_CHARS " \\001\\002\\003\\004\\005\\006\\007\\010\\011\\012\\013\\014\\015\\016\\017\\020\\021\\022\\023\\024\\025\\026\\027\\030\\031\\032\\033\\034\\035\\036\\037"\n'
                                >
                                <'char **\n'>
                                <'prepare_spawn (char **argv)\n'>
                                <'{\n'>
                                <'  size_t argc;\n'>
                                <'  char **new_argv;\n'>
                                <'  size_t i;\n'>
                                <'\n'>
                                <'  /* Count number of arguments.  */\n'>
                                <'  for (argc = 0; argv[argc] != NULL; argc++)\n'>
                                <'    ;\n'>
                                <'\n'>
                                <'  /* Allocate new argument vector.  */\n'>
                                <'  new_argv = XMALLOC (char *, argc + 1);\n'>
                                <'\n'>
                                <'  /* Put quoted arguments into the new argument vector.  */\n'>
                                <'  for (i = 0; i < argc; i++)\n'>
                                <'    {\n'>
                                <'      const char *string = argv[i];\n'>
                                <'\n'>
                                <'      if (string[0] == \'\\0\')\n'>
                                <'\tnew_argv[i] = xstrdup ("\\"\\"");\n'>
                                <'      else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)\n'>
                                <'\t{\n'>
                                <
'\t  int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);\n'
                                >
                                <'\t  size_t length;\n'>
                                <'\t  unsigned int backslashes;\n'>
                                <'\t  const char *s;\n'>
                                <'\t  char *quoted_string;\n'>
                                <'\t  char *p;\n'>
                                <'\n'>
                                <'\t  length = 0;\n'>
                                <'\t  backslashes = 0;\n'>
                                <'\t  if (quote_around)\n'>
                                <'\t    length++;\n'>
                                <'\t  for (s = string; *s != \'\\0\'; s++)\n'>
                                <'\t    {\n'>
                                <'\t      char c = *s;\n'>
                                <'\t      if (c == \'"\')\n'>
                                <'\t\tlength += backslashes + 1;\n'>
                                <'\t      length++;\n'>
                                <'\t      if (c == \'\\\\\')\n'>
                                <'\t\tbackslashes++;\n'>
                                <'\t      else\n'>
                                <'\t\tbackslashes = 0;\n'>
                                <'\t    }\n'>
                                <'\t  if (quote_around)\n'>
                                <'\t    length += backslashes + 1;\n'>
                                <'\n'>
                                <'\t  quoted_string = XMALLOC (char, length + 1);\n'>
                                <'\n'>
                                <'\t  p = quoted_string;\n'>
                                <'\t  backslashes = 0;\n'>
                                <'\t  if (quote_around)\n'>
                                <'\t    *p++ = \'"\';\n'>
                                <'\t  for (s = string; *s != \'\\0\'; s++)\n'>
                                <'\t    {\n'>
                                <'\t      char c = *s;\n'>
                                <'\t      if (c == \'"\')\n'>
                                <'\t\t{\n'>
                                <'\t\t  unsigned int j;\n'>
                                <'\t\t  for (j = backslashes + 1; j > 0; j--)\n'>
                                <'\t\t    *p++ = \'\\\\\';\n'>
                                <'\t\t}\n'>
                                <'\t      *p++ = c;\n'>
                                <'\t      if (c == \'\\\\\')\n'>
                                <'\t\tbackslashes++;\n'>
                                <'\t      else\n'>
                                <'\t\tbackslashes = 0;\n'>
                                <'\t    }\n'>
                                <'\t  if (quote_around)\n'>
                                <'\t    {\n'>
                                <'\t      unsigned int j;\n'>
                                <'\t      for (j = backslashes; j > 0; j--)\n'>
                                <'\t\t*p++ = \'\\\\\';\n'>
                                <'\t      *p++ = \'"\';\n'>
                                <'\t    }\n'>
                                <'\t  *p = \'\\0\';\n'>
                                <'\n'>
                                <'\t  new_argv[i] = quoted_string;\n'>
                                <'\t}\n'>
                                <'      else\n'>
                                <'\tnew_argv[i] = (char *) string;\n'>
                                <'    }\n'>
                                <'  new_argv[argc] = NULL;\n'>
                                <'\n'>
                                <'  return new_argv;\n'>
                                <'}\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(DQ <EOF>)}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [<'void lt_dump_script (FILE* f)\n'> <'{\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <func_emit_wrapper>
                  more_env: []
                  words: [{<func_emit_wrapper>} {<yes>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$SED'>
                  more_env: []
                  words: [
                    {($ Id.VSub_DollarName SED)}
                    {<-n>}
                    {<-e>}
                    {
                      (SQ <'\n'> <'s/^\\(.\\{79\\}\\)\\(..*\\)/\\1\\\n'> <'\\2/\n'> <'h\n'> 
                        <'s/\\([\\\\"]\\)/\\\\\\1/g\n'> <'s/$/\\\\n/\n'> <'s/\\([^\\n]*\\).*/  fputs ("\\1", f);/p\n'> <'g\n'> <D>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(DQ <EOF>)}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [<'}\n'>]
                    )
                )
              ]
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_win32_import_lib_p>
      name: func_win32_import_lib_p
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: 
                (case_arg.Word
                  w: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <eval>
                                more_env: []
                                words: [
                                  {<eval>}
                                  {($ Id.VSub_DollarName file_magic_cmd)}
                                  {
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) ($ Id.VSub_Number 1) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                  }
                                ]
                                redirects: [
                                  (Redir
                                    op: <Id.Redir_Great '2>'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <Id.VSub_DollarName '$SED'>
                                more_env: []
                                words: [{($ Id.VSub_DollarName SED)} {<-e>} {<10q>}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [{<Id.Lit_Star '*'> <Id.KW_Import import> <Id.Lit_Star '*'>}]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <Id.Lit_Colon ':'>
                      more_env: []
                      words: [{<Id.Lit_Colon ':'>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <false>
                      more_env: []
                      words: [{<false>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_suncc_cstd_abi>
      name: func_suncc_cstd_abi
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName compile_command) <' '>)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> (DQ <' -compat=g '>) <Id.Lit_Star '*'>}
                        {<Id.Lit_Star '*'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\ '>
                            ch: ' '
                          ) <-std> <Id.Lit_Equals '='> <c> <Id.Lit_Other '+'> <Id.Lit_Other '+'> <Id.Lit_LBracket '['> <0-9> 
                          <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\ '>
                            ch: ' '
                          ) <Id.Lit_Star '*'>
                        }
                        {<Id.Lit_Star '*'> (DQ <' -library=stdcxx4 '>) <Id.Lit_Star '*'>}
                        {<Id.Lit_Star '*'> (DQ <' -library=stlport4 '>) <Id.Lit_Star '*'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'suncc_use_cstd_abi='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'suncc_use_cstd_abi='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'suncc_use_cstd_abi='>
                              name: suncc_use_cstd_abi
                            )
                          op: assign_op.Equal
                          rhs: {<no>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'suncc_use_cstd_abi='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'suncc_use_cstd_abi='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'suncc_use_cstd_abi='>
                              name: suncc_use_cstd_abi
                            )
                          op: assign_op.Equal
                          rhs: {<yes>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <func_mode_link>
      name: func_mode_link
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-cygwin> <Id.Lit_Star '*'>}
                        {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-mingw> <Id.Lit_Star '*'>}
                        {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-pw32> <Id.Lit_Star '*'>}
                        {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-os2> <Id.Lit_Star '*'>}
                        {<Id.Lit_Star '*'> <-cegcc> <Id.Lit_Star '*'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'allow_undefined='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'allow_undefined='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'allow_undefined='>
                              name: allow_undefined
                            )
                          op: assign_op.Equal
                          rhs: {<yes>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'allow_undefined='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'allow_undefined='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'allow_undefined='>
                              name: allow_undefined
                            )
                          op: assign_op.Equal
                          rhs: {<yes>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'libtool_args='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'libtool_args='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libtool_args='> name:libtool_args)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName nonopt)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'base_compile='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'base_compile='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'base_compile='> name:base_compile)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName nonopt) <' '> ($ Id.VSub_At '@'))}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'compile_command='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'compile_command='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'compile_command='>
                      name: compile_command
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName nonopt)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'finalize_command='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'finalize_command='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'finalize_command='>
                      name: finalize_command
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName nonopt)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'compile_rpath='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'compile_rpath='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'compile_rpath='> name:compile_rpath)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'finalize_rpath='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'finalize_rpath='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'finalize_rpath='> name:finalize_rpath)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'compile_shlibpath='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'compile_shlibpath='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'compile_shlibpath='>
                      name: compile_shlibpath
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'finalize_shlibpath='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'finalize_shlibpath='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'finalize_shlibpath='>
                      name: finalize_shlibpath
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'convenience='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'convenience='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'convenience='> name:convenience)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'old_convenience='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'old_convenience='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'old_convenience='>
                      name: old_convenience
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'deplibs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'deplibs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'deplibs='> name:deplibs)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'old_deplibs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'old_deplibs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'old_deplibs='> name:old_deplibs)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'compiler_flags='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'compiler_flags='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'compiler_flags='> name:compiler_flags)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'linker_flags='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'linker_flags='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'linker_flags='> name:linker_flags)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'dllsearchpath='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'dllsearchpath='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dllsearchpath='> name:dllsearchpath)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'lib_search_path='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'lib_search_path='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'lib_search_path='>
                      name: lib_search_path
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <pwd>
                            more_env: []
                            words: [{<pwd>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'inst_prefix_dir='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'inst_prefix_dir='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'inst_prefix_dir='>
                      name: inst_prefix_dir
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'new_inherited_linker_flags='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'new_inherited_linker_flags='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'new_inherited_linker_flags='>
                      name: new_inherited_linker_flags
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'avoid_version='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'avoid_version='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'avoid_version='> name:avoid_version)
                  op: assign_op.Equal
                  rhs: {<no>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'bindir='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'bindir='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bindir='> name:bindir)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'dlfiles='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'dlfiles='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dlfiles='> name:dlfiles)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'dlprefiles='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'dlprefiles='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dlprefiles='> name:dlprefiles)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'dlself='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'dlself='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dlself='> name:dlself)
                  op: assign_op.Equal
                  rhs: {<no>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'export_dynamic='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'export_dynamic='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'export_dynamic='> name:export_dynamic)
                  op: assign_op.Equal
                  rhs: {<no>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'export_symbols='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'export_symbols='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'export_symbols='> name:export_symbols)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'export_symbols_regex='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'export_symbols_regex='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'export_symbols_regex='>
                      name: export_symbols_regex
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'generated='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'generated='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'generated='> name:generated)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'libobjs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'libobjs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libobjs='> name:libobjs)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ltlibs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ltlibs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ltlibs='> name:ltlibs)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'module='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'module='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'module='> name:module)
                  op: assign_op.Equal
                  rhs: {<no>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'no_install='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'no_install='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'no_install='> name:no_install)
                  op: assign_op.Equal
                  rhs: {<no>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'objs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'objs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'objs='> name:objs)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'os2dllname='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'os2dllname='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'os2dllname='> name:os2dllname)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'non_pic_objects='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'non_pic_objects='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'non_pic_objects='>
                      name: non_pic_objects
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'precious_files_regex='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'precious_files_regex='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'precious_files_regex='>
                      name: precious_files_regex
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'prefer_static_libs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'prefer_static_libs='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'prefer_static_libs='>
                      name: prefer_static_libs
                    )
                  op: assign_op.Equal
                  rhs: {<no>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'preload='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'preload='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'preload='> name:preload)
                  op: assign_op.Equal
                  rhs: {<false>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'prev='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'prev='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'prevarg='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'prevarg='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prevarg='> name:prevarg)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (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: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'rpath='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'rpath='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rpath='> name:rpath)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'xrpath='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'xrpath='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'xrpath='> name:xrpath)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'perm_rpath='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'perm_rpath='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'perm_rpath='> name:perm_rpath)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'temp_rpath='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'temp_rpath='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'temp_rpath='> name:temp_rpath)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'thread_safe='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'thread_safe='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'thread_safe='> name:thread_safe)
                  op: assign_op.Equal
                  rhs: {<no>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'vinfo='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'vinfo='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'vinfo='> name:vinfo)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'vinfo_number='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'vinfo_number='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'vinfo_number='> name:vinfo_number)
                  op: assign_op.Equal
                  rhs: {<no>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'weak_libs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'weak_libs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'weak_libs='> name:weak_libs)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'single_module='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'single_module='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'single_module='> name:single_module)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName wl) <-single_module>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <func_infer_tag>
              more_env: []
              words: [{<func_infer_tag>} {($ Id.VSub_DollarName base_compile)}]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [arg]
              iterable: (for_iter__Args)
              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 arg)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <-shared>
                          pattern: (pat.Words words:[{<-shared>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<yes>}
                                    {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                    {(DQ ($ Id.VSub_DollarName build_libtool_libs))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_fatal_configuration>
                                  more_env: []
                                  words: [
                                    {<func_fatal_configuration>}
                                    {(DQ <'cannot build a shared library'>)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'build_old_libs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'build_old_libs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'build_old_libs='>
                                      name: build_old_libs
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-all-static>
                          pattern: 
                            (pat.Words
                              words: [{<-all-static>} {<-static>} {<-static-libtool-libs>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName arg)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <-all-static>
                                  pattern: (pat.Words words:[{<-all-static>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<yes>}
                                                            {<Id.Lit_Equals '='>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
build_libtool_libs
                                                                )
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-z>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
link_static_flag
                                                                )
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_warning>
                                              more_env: []
                                              words: [
                                                {<func_warning>}
                                                {
                                                  (DQ 
                                                    <
'complete static linking is impossible in this configuration'
                                                    >
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [29466 29489]
                                        )
                                      ]
                                      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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-n>}
                                                        {(DQ ($ Id.VSub_DollarName link_static_flag))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'dlopen_self='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'dlopen_self='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dlopen_self='>
                                                      name: dlopen_self
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName dlopen_self_static)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [29502 29513]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prefer_static_libs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prefer_static_libs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prefer_static_libs='>
                                              name: prefer_static_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: {<yes>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <-static>
                                  pattern: (pat.Words words:[{<-static>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-z>}
                                                            {(DQ ($ Id.VSub_DollarName pic_flag))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
link_static_flag
                                                                )
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'dlopen_self='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'dlopen_self='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dlopen_self='>
                                                      name: dlopen_self
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName dlopen_self_static)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [29534 29555]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prefer_static_libs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prefer_static_libs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prefer_static_libs='>
                                              name: prefer_static_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: {<built>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <-static-libtool-libs>
                                  pattern: (pat.Words words:[{<-static-libtool-libs>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-z>}
                                                            {(DQ ($ Id.VSub_DollarName pic_flag))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
link_static_flag
                                                                )
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'dlopen_self='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'dlopen_self='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dlopen_self='>
                                                      name: dlopen_self
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName dlopen_self_static)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [29576 29597]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prefer_static_libs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prefer_static_libs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prefer_static_libs='>
                                              name: prefer_static_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: {<yes>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'build_libtool_libs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'build_libtool_libs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'build_libtool_libs='>
                                      name: build_libtool_libs
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'build_old_libs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'build_old_libs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'build_old_libs='>
                                      name: build_old_libs
                                    )
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName old_archive_from_new_cmds))}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'build_old_libs='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'build_old_libs='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'build_old_libs='>
                          name: build_old_libs
                        )
                      op: assign_op.Equal
                      rhs: {<yes>}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {(DQ ($ Id.VSub_Pound '#'))} {<-gt>} {<0>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'arg='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'arg='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <func_quote_for_eval>
                      more_env: []
                      words: [{<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName arg))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'qarg='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'qarg='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'qarg='> name:qarg)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_quote_for_eval_unquoted_result)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_append>
                      more_env: []
                      words: [
                        {<func_append>}
                        {<libtool_args>}
                        {(DQ <' '> ($ Id.VSub_DollarName func_quote_for_eval_result))}
                      ]
                      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>} {<-n>} {(DQ ($ Id.VSub_DollarName prev))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName prev)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <output>
                                  pattern: (pat.Words words:[{<output>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [{<func_append>} {<compile_command>} {(DQ <' @OUTPUT@'>)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [{<func_append>} {<finalize_command>} {(DQ <' @OUTPUT@'>)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName prev)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <bindir>
                                  pattern: (pat.Words words:[{<bindir>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'bindir='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'bindir='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'bindir='>
                                              name: bindir
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName arg)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prev='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prev='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <dlfiles>
                                  pattern: (pat.Words words:[{<dlfiles>} {<dlprefiles>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$preload'>
                                          more_env: []
                                          words: [{($ Id.VSub_DollarName preload)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<compile_command>}
                                                {(DQ <' @SYMFILE@'>)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<finalize_command>}
                                                {(DQ <' @SYMFILE@'>)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'preload='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'preload='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'preload='>
                                                      name: preload
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<Id.Lit_Colon ':'>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName arg)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <.la>}
                                                {<Id.Lit_Star '*'> <.lo>}
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <force>
                                          pattern: (pat.Words words:[{<force>}])
                                          middle: <Id.Right_CasePat _>
                                          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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<no>}
                                                                {<Id.Lit_Equals '='>}
                                                                {(DQ ($ Id.VSub_DollarName dlself))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'dlself='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'dlself='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'dlself='>
                                                              name: dlself
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<needless>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'export_dynamic='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'export_dynamic='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 'export_dynamic='>
                                                              name: export_dynamic
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<yes>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [29852 29865]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'prev='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'prev='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'prev='>
                                                      name: prev
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <self>
                                          pattern: (pat.Words words:[{<self>}])
                                          middle: <Id.Right_CasePat _>
                                          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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<dlprefiles>}
                                                                {<Id.Lit_Equals '='>}
                                                                {(DQ ($ Id.VSub_DollarName prev))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'dlself='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'dlself='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'dlself='>
                                                              name: dlself
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<yes>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [29892 29905]
                                                )
                                                (IfArm
                                                  keyword: <Id.KW_Elif elif>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.AndOr
                                                              children: [
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<dlfiles>}
                                                                    {<Id.Lit_Equals '='>}
                                                                    {(DQ ($ Id.VSub_DollarName prev))}
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<yes>}
                                                                    {<Id.KW_Bang '!'> 
                                                                      <Id.Lit_Equals '='>
                                                                    }
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
dlopen_self
                                                                        )
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              ops: [<Id.Op_DAmp _>]
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'dlself='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'dlself='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'dlself='>
                                                              name: dlself
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<yes>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [29912 29938]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'dlself='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'dlself='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'dlself='>
                                                          name: dlself
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {<needless>}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'export_dynamic='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'export_dynamic='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'export_dynamic='>
                                                          name: export_dynamic
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {<yes>}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'prev='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'prev='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'prev='>
                                                      name: prev
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<dlfiles>}
                                                                {<Id.Lit_Equals '='>}
                                                                {(DQ ($ Id.VSub_DollarName prev))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<dlfiles>}
                                                        {(DQ <' '> ($ Id.VSub_DollarName arg))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [29972 29985]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.Simple
                                                  blame_tok: <func_append>
                                                  more_env: []
                                                  words: [
                                                    {<func_append>}
                                                    {<dlprefiles>}
                                                    {(DQ <' '> ($ Id.VSub_DollarName arg))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'prev='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'prev='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'prev='>
                                                      name: prev
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <expsyms>
                                  pattern: (pat.Words words:[{<expsyms>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'export_symbols='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'export_symbols='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'export_symbols='>
                                              name: export_symbols
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName arg)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-f>} {(DQ ($ Id.VSub_DollarName arg))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <func_fatal_error>
                                          more_env: []
                                          words: [
                                            {<func_fatal_error>}
                                            {
                                              (DQ <'symbol file \''> ($ Id.VSub_DollarName arg) 
                                                <'\' does not exist'>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prev='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prev='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <expsyms_regex>
                                  pattern: (pat.Words words:[{<expsyms_regex>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'export_symbols_regex='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'export_symbols_regex='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'export_symbols_regex='>
                                              name: export_symbols_regex
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName arg)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prev='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prev='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <framework>
                                  pattern: (pat.Words words:[{<framework>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-darwin> 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {(DQ ($ Id.VSub_DollarName deplibs) <' '>)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> ($ Id.VSub_DollarName qarg) 
                                                            <'.ltframework '>
                                                          ) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: []
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<deplibs>}
                                                        {
                                                          (DQ <' '> ($ Id.VSub_DollarName qarg) 
                                                            <.ltframework>
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prev='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prev='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <inst_prefix>
                                  pattern: (pat.Words words:[{<inst_prefix>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'inst_prefix_dir='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'inst_prefix_dir='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'inst_prefix_dir='>
                                              name: inst_prefix_dir
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName arg)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prev='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prev='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <mllvm>
                                  pattern: (pat.Words words:[{<mllvm>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prev='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prev='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <objectlist>
                                  pattern: (pat.Words words:[{<objectlist>}])
                                  middle: <Id.Right_CasePat _>
                                  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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-f>}
                                                        {(DQ ($ Id.VSub_DollarName arg))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'save_arg='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'save_arg='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'save_arg='>
                                                      name: save_arg
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName arg)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'moreargs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'moreargs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'moreargs='>
                                                      name: moreargs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [fil]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <cat>
                                                            more_env: []
                                                            words: [
                                                              {<cat>}
                                                              {(DQ ($ Id.VSub_DollarName save_arg))}
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                  ]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'arg='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'arg='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'arg='>
                                                              name: arg
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName fil)}
                                                        )
                                                      ]
                                                      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: 
                                                                        <func_lalib_unsafe_p>
                                                                      more_env: []
                                                                      words: [
                                                                        {<func_lalib_unsafe_p>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName arg)
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'pic_object='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 'pic_object='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'pic_object='
                                                                        >
                                                                      name: pic_object
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: (rhs_word__Empty)
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: 
                                                                <Id.Lit_VarLike 'non_pic_object='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'non_pic_object='
                                                                    >
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'non_pic_object='
                                                                        >
                                                                      name: non_pic_object
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: (rhs_word__Empty)
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <func_source>
                                                              more_env: []
                                                              words: [
                                                                {<func_source>}
                                                                {(DQ ($ Id.VSub_DollarName arg))}
                                                              ]
                                                              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.AndOr
                                                                              children: [
                                                                                (command.Simple
                                                                                  blame_tok: <test>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<test>}
                                                                                    {<-z>}
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName pic_object
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                                (command.Simple
                                                                                  blame_tok: <test>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<test>}
                                                                                    {<-z>}
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName non_pic_object
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                                (command.Simple
                                                                                  blame_tok: <test>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<test>}
                                                                                    {<none>}
                                                                                    {
                                                                                      <
Id.Lit_Equals '='
                                                                                      >
                                                                                    }
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName pic_object
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                                (command.Simple
                                                                                  blame_tok: <test>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<test>}
                                                                                    {<none>}
                                                                                    {
                                                                                      <
Id.Lit_Equals '='
                                                                                      >
                                                                                    }
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName non_pic_object
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                              ]
                                                                              ops: [
                                                                                <Id.Op_DPipe _>
                                                                                <Id.Op_DPipe _>
                                                                                <Id.Op_DAmp _>
                                                                              ]
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <func_fatal_error>
                                                                      more_env: []
                                                                      words: [
                                                                        {<func_fatal_error>}
                                                                        {
                                                                          (DQ 
                                                                            <
'cannot find name of object for \''
                                                                            > ($ Id.VSub_DollarName arg) <'\''>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  spids: [30293 30341]
                                                                )
                                                              ]
                                                              else_action: []
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <func_dirname>
                                                              more_env: []
                                                              words: [
                                                                {<func_dirname>}
                                                                {(DQ ($ Id.VSub_DollarName arg))}
                                                                {(DQ <'/'>)}
                                                                {(DQ )}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'xdir='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'xdir='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'xdir='>
                                                                      name: xdir
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
func_dirname_result
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              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: <test>
                                                                              more_env: []
                                                                              words: [
                                                                                {<test>}
                                                                                {<none>}
                                                                                {<Id.KW_Bang '!'> 
                                                                                  <Id.Lit_Equals '='>
                                                                                }
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName pic_object
                                                                                    )
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'pic_object='
                                                                        >
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'pic_object='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'pic_object='
                                                                                >
                                                                              name: pic_object
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
xdir
                                                                              ) ($ Id.VSub_DollarName pic_object)
                                                                            }
                                                                        )
                                                                      ]
                                                                      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: 
                                                                                        <test>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<test>}
                                                                                        {<dlfiles>}
                                                                                        {
                                                                                          <
Id.Lit_Equals '='
                                                                                          >
                                                                                        }
                                                                                        {
                                                                                          (DQ 
                                                                                            ($ 
Id.VSub_DollarName prev
                                                                                            )
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      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.AndOr
                                                                                              children: [
                                                                                                (command.Simple
                                                                                                  blame_tok: 
                                                                                                    <
test
                                                                                                    >
                                                                                                  more_env: []
                                                                                                  words: [
                                                                                                    {
                                                                                                      <
test
                                                                                                      >
                                                                                                    }
                                                                                                    {
                                                                                                      <
yes
                                                                                                      >
                                                                                                    }
                                                                                                    {
                                                                                                      <
Id.Lit_Equals '='
                                                                                                      >
                                                                                                    }
                                                                                                    {
                                                                                                      (DQ 
                                                                                                        ($ 
Id.VSub_DollarName build_libtool_libs
                                                                                                        )
                                                                                                      )
                                                                                                    }
                                                                                                  ]
                                                                                                  redirects: []
                                                                                                  do_fork: 
T
                                                                                                )
                                                                                                (command.Simple
                                                                                                  blame_tok: 
                                                                                                    <
test
                                                                                                    >
                                                                                                  more_env: []
                                                                                                  words: [
                                                                                                    {
                                                                                                      <
test
                                                                                                      >
                                                                                                    }
                                                                                                    {
                                                                                                      <
yes
                                                                                                      >
                                                                                                    }
                                                                                                    {
                                                                                                      <
Id.Lit_Equals '='
                                                                                                      >
                                                                                                    }
                                                                                                    {
                                                                                                      (DQ 
                                                                                                        ($ 
Id.VSub_DollarName dlopen_support
                                                                                                        )
                                                                                                      )
                                                                                                    }
                                                                                                  ]
                                                                                                  redirects: []
                                                                                                  do_fork: 
T
                                                                                                )
                                                                                              ]
                                                                                              ops: [
                                                                                                <
Id.Op_DAmp _
                                                                                                >
                                                                                              ]
                                                                                            )
                                                                                          terminator: 
                                                                                            <
Id.Op_Semi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  then_kw: 
                                                                                    <Id.KW_Then then>
                                                                                  action: [
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <
func_append
                                                                                        >
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {
                                                                                          <
func_append
                                                                                          >
                                                                                        }
                                                                                        {<dlfiles>}
                                                                                        {
                                                                                          (DQ <' '> 
                                                                                            ($ 
Id.VSub_DollarName pic_object
                                                                                            )
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'prev='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'prev='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'prev='
                                                                                                >
                                                                                              name: 
prev
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: (rhs_word__Empty)
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.ControlFlow
                                                                                      keyword: 
                                                                                        <
Id.ControlFlow_Continue continue
                                                                                        >
                                                                                    )
                                                                                  ]
                                                                                  spids: [30423 30448]
                                                                                )
                                                                              ]
                                                                              else_kw: 
                                                                                <Id.KW_Else else>
                                                                              else_action: [
                                                                                (command.ShAssignment
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'prev='
                                                                                    >
                                                                                  pairs: [
                                                                                    (AssignPair
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'prev='
                                                                                        >
                                                                                      lhs: 
                                                                                        (sh_lhs_expr.Name
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'prev='
                                                                                            >
                                                                                          name: prev
                                                                                        )
                                                                                      op: 
assign_op.Equal
                                                                                      rhs: 
                                                                                        {
                                                                                          <
dlprefiles
                                                                                          >
                                                                                        }
                                                                                    )
                                                                                  ]
                                                                                  redirects: []
                                                                                )
                                                                              ]
                                                                              fi_kw: <Id.KW_Fi fi>
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          spids: [30407 30420]
                                                                        )
                                                                      ]
                                                                      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: 
                                                                                        <test>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<test>}
                                                                                        {
                                                                                          <
dlprefiles
                                                                                          >
                                                                                        }
                                                                                        {
                                                                                          <
Id.Lit_Equals '='
                                                                                          >
                                                                                        }
                                                                                        {
                                                                                          (DQ 
                                                                                            ($ 
Id.VSub_DollarName prev
                                                                                            )
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                  terminator: 
                                                                                    <Id.Op_Semi _>
                                                                                )
                                                                              ]
                                                                            )
                                                                          then_kw: <Id.KW_Then then>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: 
                                                                                <func_append>
                                                                              more_env: []
                                                                              words: [
                                                                                {<func_append>}
                                                                                {<dlprefiles>}
                                                                                {
                                                                                  (DQ <' '> 
                                                                                    ($ 
Id.VSub_DollarName pic_object
                                                                                    )
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'prev='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'prev='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'prev='
                                                                                        >
                                                                                      name: prev
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: (rhs_word__Empty)
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          spids: [30489 30502]
                                                                        )
                                                                      ]
                                                                      else_action: []
                                                                      fi_kw: <Id.KW_Fi fi>
                                                                      redirects: []
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <func_append>
                                                                      more_env: []
                                                                      words: [
                                                                        {<func_append>}
                                                                        {<libobjs>}
                                                                        {
                                                                          (DQ <' '> 
                                                                            ($ Id.VSub_DollarName 
pic_object
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'arg='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'arg='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'arg='
                                                                                >
                                                                              name: arg
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
pic_object
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [30380 30394]
                                                                )
                                                              ]
                                                              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: <test>
                                                                              more_env: []
                                                                              words: [
                                                                                {<test>}
                                                                                {<none>}
                                                                                {<Id.KW_Bang '!'> 
                                                                                  <Id.Lit_Equals '='>
                                                                                }
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName non_pic_object
                                                                                    )
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'non_pic_object='
                                                                        >
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'non_pic_object='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'non_pic_object='
                                                                                >
                                                                              name: non_pic_object
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
xdir
                                                                              ) ($ Id.VSub_DollarName non_pic_object)
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <func_append>
                                                                      more_env: []
                                                                      words: [
                                                                        {<func_append>}
                                                                        {<non_pic_objects>}
                                                                        {
                                                                          (DQ <' '> 
                                                                            ($ Id.VSub_DollarName 
non_pic_object
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      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.AndOr
                                                                                      children: [
                                                                                        (command.Simple
                                                                                          blame_tok: 
                                                                                            <test>
                                                                                          more_env: []
                                                                                          words: [
                                                                                            {<test>}
                                                                                            {<-z>}
                                                                                            {
                                                                                              (DQ 
                                                                                                ($ 
Id.VSub_DollarName pic_object
                                                                                                )
                                                                                              )
                                                                                            }
                                                                                          ]
                                                                                          redirects: []
                                                                                          do_fork: T
                                                                                        )
                                                                                        (command.Simple
                                                                                          blame_tok: 
                                                                                            <test>
                                                                                          more_env: []
                                                                                          words: [
                                                                                            {<test>}
                                                                                            {<none>}
                                                                                            {
                                                                                              <
Id.Lit_Equals '='
                                                                                              >
                                                                                            }
                                                                                            {
                                                                                              (DQ 
                                                                                                ($ 
Id.VSub_DollarName pic_object
                                                                                                )
                                                                                              )
                                                                                            }
                                                                                          ]
                                                                                          redirects: []
                                                                                          do_fork: T
                                                                                        )
                                                                                      ]
                                                                                      ops: [
                                                                                        <
Id.Op_DPipe _
                                                                                        >
                                                                                      ]
                                                                                    )
                                                                                  terminator: 
                                                                                    <Id.Op_Semi _>
                                                                                )
                                                                              ]
                                                                            )
                                                                          then_kw: <Id.KW_Then then>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'arg='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'arg='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'arg='
                                                                                        >
                                                                                      name: arg
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName non_pic_object
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          spids: [30593 30616]
                                                                        )
                                                                      ]
                                                                      else_action: []
                                                                      fi_kw: <Id.KW_Fi fi>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [30552 30566]
                                                                )
                                                              ]
                                                              else_kw: <Id.KW_Else else>
                                                              else_action: [
                                                                (command.ShAssignment
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'non_pic_object='
                                                                    >
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'non_pic_object='
                                                                        >
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'non_pic_object='
                                                                            >
                                                                          name: non_pic_object
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
pic_object
                                                                          )
                                                                        }
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (command.Simple
                                                                  blame_tok: <func_append>
                                                                  more_env: []
                                                                  words: [
                                                                    {<func_append>}
                                                                    {<non_pic_objects>}
                                                                    {
                                                                      (DQ <' '> 
                                                                        ($ Id.VSub_DollarName 
non_pic_object
                                                                        )
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [30262 30271]
                                                        )
                                                      ]
                                                      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.Simple
                                                                          blame_tok: 
                                                                            <Id.VSub_DollarName 
'$opt_dry_run'
                                                                            >
                                                                          more_env: []
                                                                          words: [
                                                                            {
                                                                              ($ Id.VSub_DollarName 
opt_dry_run
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                      terminator: <Id.Op_Semi _>
                                                                    )
                                                                  ]
                                                                )
                                                              then_kw: <Id.KW_Then then>
                                                              action: [
                                                                (command.Simple
                                                                  blame_tok: <func_dirname>
                                                                  more_env: []
                                                                  words: [
                                                                    {<func_dirname>}
                                                                    {(DQ ($ Id.VSub_DollarName arg))}
                                                                    {(DQ <'/'>)}
                                                                    {(DQ )}
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'xdir='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: <Id.Lit_VarLike 'xdir='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 'xdir='>
                                                                          name: xdir
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
func_dirname_result
                                                                          )
                                                                        }
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (command.Simple
                                                                  blame_tok: <func_lo2o>
                                                                  more_env: []
                                                                  words: [
                                                                    {<func_lo2o>}
                                                                    {(DQ ($ Id.VSub_DollarName arg))}
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.ShAssignment
                                                                  left: 
                                                                    <Id.Lit_VarLike 'pic_object='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'pic_object='
                                                                        >
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'pic_object='
                                                                            >
                                                                          name: pic_object
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {($ Id.VSub_DollarName xdir) 
                                                                          ($ Id.VSub_DollarName 
objdir
                                                                          ) <'/'> ($ Id.VSub_DollarName func_lo2o_result)
                                                                        }
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (command.ShAssignment
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'non_pic_object='
                                                                    >
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'non_pic_object='
                                                                        >
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'non_pic_object='
                                                                            >
                                                                          name: non_pic_object
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {($ Id.VSub_DollarName xdir) 
                                                                          ($ Id.VSub_DollarName 
func_lo2o_result
                                                                          )
                                                                        }
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (command.Simple
                                                                  blame_tok: <func_append>
                                                                  more_env: []
                                                                  words: [
                                                                    {<func_append>}
                                                                    {<libobjs>}
                                                                    {
                                                                      (DQ <' '> 
                                                                        ($ Id.VSub_DollarName 
pic_object
                                                                        )
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.Simple
                                                                  blame_tok: <func_append>
                                                                  more_env: []
                                                                  words: [
                                                                    {<func_append>}
                                                                    {<non_pic_objects>}
                                                                    {
                                                                      (DQ <' '> 
                                                                        ($ Id.VSub_DollarName 
non_pic_object
                                                                        )
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              spids: [30661 30666]
                                                            )
                                                          ]
                                                          else_kw: <Id.KW_Else else>
                                                          else_action: [
                                                            (command.Simple
                                                              blame_tok: <func_fatal_error>
                                                              more_env: []
                                                              words: [
                                                                {<func_fatal_error>}
                                                                {
                                                                  (DQ <'\''> 
                                                                    ($ Id.VSub_DollarName arg) <'\' is not a valid libtool object'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          fi_kw: <Id.KW_Fi fi>
                                                          redirects: []
                                                        )
                                                      ]
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                          ]
                                          spids: [30205 30216]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <func_fatal_error>
                                          more_env: []
                                          words: [
                                            {<func_fatal_error>}
                                            {
                                              (DQ <'link input file \''> ($ Id.VSub_DollarName arg) 
                                                <'\' does not exist'>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'arg='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'arg='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'arg='>
                                              name: arg
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName save_arg)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prev='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prev='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <os2dllname>
                                  pattern: (pat.Words words:[{<os2dllname>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'os2dllname='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'os2dllname='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'os2dllname='>
                                              name: os2dllname
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName arg)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prev='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prev='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <precious_regex>
                                  pattern: (pat.Words words:[{<precious_regex>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'precious_files_regex='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'precious_files_regex='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'precious_files_regex='>
                                              name: precious_files_regex
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName arg)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prev='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prev='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <release>
                                  pattern: (pat.Words words:[{<release>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (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_DollarName arg)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prev='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prev='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <rpath>
                                  pattern: (pat.Words words:[{<rpath>} {<xrpath>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName arg)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_LBracket '['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_LBracket '['> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\\\'>
                                                    ch: '\\'
                                                  ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_LBracket '['> <A-Za-z> <Id.Lit_RBracket ']'> 
                                                  <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/'> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_fatal_error>
                                              more_env: []
                                              words: [
                                                {<func_fatal_error>}
                                                {(DQ <'only absolute run-paths are allowed'>)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<rpath>}
                                                        {<Id.Lit_Equals '='>}
                                                        {(DQ ($ Id.VSub_DollarName prev))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {(DQ ($ Id.VSub_DollarName rpath) <' '>)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> ($ Id.VSub_DollarName arg) <' '>) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: []
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<rpath>}
                                                        {(DQ <' '> ($ Id.VSub_DollarName arg))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          spids: [30890 30903]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Case
                                          case_kw: <Id.KW_Case case>
                                          to_match: 
                                            (case_arg.Word
                                              w: {(DQ ($ Id.VSub_DollarName xrpath) <' '>)}
                                            )
                                          arms_start: <Id.KW_In in>
                                          arms: [
                                            (CaseArm
                                              left: <Id.Lit_Star '*'>
                                              pattern: 
                                                (pat.Words
                                                  words: [
                                                    {<Id.Lit_Star '*'> 
                                                      (DQ <' '> ($ Id.VSub_DollarName arg) <' '>) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                )
                                              middle: <Id.Right_CasePat _>
                                              action: []
                                              right: <Id.Op_DSemi _>
                                            )
                                            (CaseArm
                                              left: <Id.Lit_Star '*'>
                                              pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                              middle: <Id.Right_CasePat _>
                                              action: [
                                                (command.Simple
                                                  blame_tok: <func_append>
                                                  more_env: []
                                                  words: [
                                                    {<func_append>}
                                                    {<xrpath>}
                                                    {(DQ <' '> ($ Id.VSub_DollarName arg))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              right: <Id.Op_DSemi _>
                                            )
                                          ]
                                          arms_end: <Id.KW_Esac esac>
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prev='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prev='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <shrext>
                                  pattern: (pat.Words words:[{<shrext>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'shrext_cmds='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'shrext_cmds='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'shrext_cmds='>
                                              name: shrext_cmds
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName arg)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prev='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prev='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <weak>
                                  pattern: (pat.Words words:[{<weak>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<weak_libs>}
                                        {(DQ <' '> ($ Id.VSub_DollarName arg))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prev='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prev='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <xcclinker>
                                  pattern: (pat.Words words:[{<xcclinker>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<linker_flags>}
                                        {(DQ <' '> ($ Id.VSub_DollarName qarg))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<compiler_flags>}
                                        {(DQ <' '> ($ Id.VSub_DollarName qarg))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prev='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prev='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<compile_command>}
                                        {(DQ <' '> ($ Id.VSub_DollarName qarg))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<finalize_command>}
                                        {(DQ <' '> ($ Id.VSub_DollarName qarg))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <xcompiler>
                                  pattern: (pat.Words words:[{<xcompiler>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<compiler_flags>}
                                        {(DQ <' '> ($ Id.VSub_DollarName qarg))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prev='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prev='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<compile_command>}
                                        {(DQ <' '> ($ Id.VSub_DollarName qarg))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<finalize_command>}
                                        {(DQ <' '> ($ Id.VSub_DollarName qarg))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <xlinker>
                                  pattern: (pat.Words words:[{<xlinker>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<linker_flags>}
                                        {(DQ <' '> ($ Id.VSub_DollarName qarg))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<compiler_flags>}
                                        {
                                          (DQ <' '> ($ Id.VSub_DollarName wl) 
                                            ($ Id.VSub_DollarName qarg)
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prev='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prev='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<compile_command>}
                                        {
                                          (DQ <' '> ($ Id.VSub_DollarName wl) 
                                            ($ Id.VSub_DollarName qarg)
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<finalize_command>}
                                        {
                                          (DQ <' '> ($ Id.VSub_DollarName wl) 
                                            ($ Id.VSub_DollarName qarg)
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {
                                          (DQ ($ Id.VSub_DollarName prev) <'='> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <arg> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            )
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prev='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prev='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          spids: [29710 29721]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'prevarg='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'prevarg='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prevarg='> name:prevarg)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName arg)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName arg)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <-all-static>
                          pattern: (pat.Words words:[{<-all-static>}])
                          middle: <Id.Right_CasePat _>
                          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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-n>}
                                                {(DQ ($ Id.VSub_DollarName link_static_flag))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<compile_command>}
                                        {(DQ <' '> ($ Id.VSub_DollarName link_static_flag))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<finalize_command>}
                                        {(DQ <' '> ($ Id.VSub_DollarName link_static_flag))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [31244 31255]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-allow-undefined>
                          pattern: (pat.Words words:[{<-allow-undefined>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_fatal_error>
                              more_env: []
                              words: [
                                {<func_fatal_error>}
                                {
                                  (DQ 
                                    <
'\'-allow-undefined\' must not be used because it is the default'
                                    >
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-avoid-version>
                          pattern: (pat.Words words:[{<-avoid-version>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'avoid_version='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'avoid_version='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'avoid_version='>
                                      name: avoid_version
                                    )
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-bindir>
                          pattern: (pat.Words words:[{<-bindir>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'prev='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'prev='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<bindir>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-dlopen>
                          pattern: (pat.Words words:[{<-dlopen>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'prev='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'prev='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<dlfiles>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-dlpreopen>
                          pattern: (pat.Words words:[{<-dlpreopen>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'prev='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'prev='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<dlprefiles>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-export-dynamic>
                          pattern: (pat.Words words:[{<-export-dynamic>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'export_dynamic='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'export_dynamic='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'export_dynamic='>
                                      name: export_dynamic
                                    )
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-export-symbols>
                          pattern: (pat.Words words:[{<-export-symbols>} {<-export-symbols-regex>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-n>}
                                                    {(DQ ($ Id.VSub_DollarName export_symbols))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-n>}
                                                    {(DQ ($ Id.VSub_DollarName export_symbols_regex))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_fatal_error>
                                      more_env: []
                                      words: [
                                        {<func_fatal_error>}
                                        {
                                          (DQ 
                                            <
'more than one -exported-symbols argument is not allowed'
                                            >
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [31394 31415]
                                )
                              ]
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<X-export-symbols>}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ <X> ($ Id.VSub_DollarName arg))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prev='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prev='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: {<expsyms>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [31428 31442]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'prev='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'prev='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                      op: assign_op.Equal
                                      rhs: {<expsyms_regex>}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-framework>
                          pattern: (pat.Words words:[{<-framework>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'prev='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'prev='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<framework>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-inst-prefix-dir>
                          pattern: (pat.Words words:[{<-inst-prefix-dir>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'prev='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'prev='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<inst_prefix>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-L>
                          pattern: 
                            (pat.Words
                              words: [
                                {<-L> <Id.Lit_LBracket '['> <A-Z> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <A-Z> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>
                                }
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: 
                                    {($ Id.VSub_DollarName with_gcc) <'/'> ($ Id.VSub_DollarName host)}
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <'no/'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<'no/'> <Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-irix> 
                                          <Id.Lit_Star '*'>
                                        }
                                        {<'/'> <Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-irix> 
                                          <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<compile_command>}
                                        {(DQ <' '> ($ Id.VSub_DollarName arg))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<finalize_command>}
                                        {(DQ <' '> ($ Id.VSub_DollarName arg))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-L>
                          pattern: (pat.Words words:[{<-L> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_stripname>
                              more_env: []
                              words: [
                                {<func_stripname>}
                                {(DQ <-L>)}
                                {(SQ )}
                                {(DQ ($ Id.VSub_DollarName arg))}
                              ]
                              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>}
                                                {<-z>}
                                                {(DQ ($ Id.VSub_DollarName func_stripname_result))}
                                              ]
                                              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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {(DQ ($ Id.VSub_Pound '#'))}
                                                        {<-gt>}
                                                        {<0>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_fatal_error>
                                              more_env: []
                                              words: [
                                                {<func_fatal_error>}
                                                {
                                                  (DQ <'require no space between \'-L\' and \''> 
                                                    ($ Id.VSub_Number 1) <'\''>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [31610 31623]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <func_fatal_error>
                                          more_env: []
                                          words: [
                                            {<func_fatal_error>}
                                            {(DQ <'need path for \'-L\' option'>)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [31596 31607]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_resolve_sysroot>
                              more_env: []
                              words: [
                                {<func_resolve_sysroot>}
                                {(DQ ($ Id.VSub_DollarName func_stripname_result))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'dir='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dir='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_resolve_sysroot_result)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName dir)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_LBracket '['>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_LBracket '['> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\\\'>
                                            ch: '\\'
                                          ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                        }
                                        {<Id.Lit_LBracket '['> <A-Za-z> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/'> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'absdir='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'absdir='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'absdir='>
                                              name: absdir
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.AndOr
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <cd>
                                                        more_env: []
                                                        words: [{<cd>} {(DQ ($ Id.VSub_DollarName dir))}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <pwd>
                                                        more_env: []
                                                        words: [{<pwd>}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_DAmp _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName absdir))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <func_fatal_error>
                                          more_env: []
                                          words: [
                                            {<func_fatal_error>}
                                            {
                                              (DQ <'cannot determine absolute directory name of \''> 
                                                ($ Id.VSub_DollarName dir) <'\''>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'dir='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'dir='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'dir='>
                                              name: dir
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName absdir)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName deplibs) <' '>)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> 
                                          (DQ <' -L'> ($ Id.VSub_DollarName dir) <' '>) <Id.Lit_Star '*'>
                                        }
                                        {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName arg) <' '>) 
                                          <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName dir)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_LBracket '['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_LBracket '['> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\\\'>
                                                    ch: '\\'
                                                  ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_LBracket '['> <A-Za-z> <Id.Lit_RBracket ']'> 
                                                  <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/'> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<deplibs>}
                                                {(DQ <' '> ($ Id.VSub_DollarName arg))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<deplibs>}
                                                {(DQ <' -L'> ($ Id.VSub_DollarName dir))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<lib_search_path>}
                                        {(DQ <' '> ($ Id.VSub_DollarName dir))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-cygwin> 
                                          <Id.Lit_Star '*'>
                                        }
                                        {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-mingw> 
                                          <Id.Lit_Star '*'>
                                        }
                                        {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-pw32> 
                                          <Id.Lit_Star '*'>
                                        }
                                        {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-os2> 
                                          <Id.Lit_Star '*'>
                                        }
                                        {<Id.Lit_Star '*'> <-cegcc> <Id.Lit_Star '*'>}
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'testbindir='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'testbindir='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'testbindir='>
                                              name: testbindir
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName ECHO)}
                                                          {(DQ ($ Id.VSub_DollarName dir))}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName SED)}
                                                          {(SQ <'s*/lib$*/bin*'>)}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {<Id.Lit_Colon ':'> ($ Id.VSub_DollarName dllsearchpath) 
                                              <Id.Lit_Colon ':'>
                                            }
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <':'> ($ Id.VSub_DollarName dir) <':'>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Colon ':'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'dllsearchpath='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'dllsearchpath='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dllsearchpath='>
                                                      name: dllsearchpath
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName dir)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<dllsearchpath>}
                                                {(DQ <':'> ($ Id.VSub_DollarName dir))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {<Id.Lit_Colon ':'> ($ Id.VSub_DollarName dllsearchpath) 
                                              <Id.Lit_Colon ':'>
                                            }
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <':'> ($ Id.VSub_DollarName testbindir) <':'>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Colon ':'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'dllsearchpath='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'dllsearchpath='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dllsearchpath='>
                                                      name: dllsearchpath
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName testbindir)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<dllsearchpath>}
                                                {(DQ <':'> ($ Id.VSub_DollarName testbindir))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-l>
                          pattern: (pat.Words words:[{<-l> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<X-lc>}
                                                    {<Id.Lit_Equals '='>}
                                                    {(DQ <X> ($ Id.VSub_DollarName arg))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<X-lm>}
                                                    {<Id.Lit_Equals '='>}
                                                    {(DQ <X> ($ Id.VSub_DollarName arg))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-cygwin> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-mingw> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-pw32> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-beos> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-cegcc> <Id.Lit_Star '*'>}
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-haiku> 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-os2> 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<X-lc>}
                                                    {<Id.Lit_Equals '='>}
                                                    {(DQ <X> ($ Id.VSub_DollarName arg))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.ControlFlow
                                                  keyword: <Id.ControlFlow_Continue continue>
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-openbsd> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-freebsd> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-dragonfly> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-bitrig> 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<X-lc>}
                                                    {<Id.Lit_Equals '='>}
                                                    {(DQ <X> ($ Id.VSub_DollarName arg))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.ControlFlow
                                                  keyword: <Id.ControlFlow_Continue continue>
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-rhapsody> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-darwin1.> 
                                                  <Id.Lit_LBracket '['> <012> <Id.Lit_RBracket ']'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<deplibs>}
                                                {(DQ <' System.ltframework'>)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-sco3.2v5> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-sco5v6> 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<X-lc>}
                                                    {<Id.Lit_Equals '='>}
                                                    {(DQ <X> ($ Id.VSub_DollarName arg))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.ControlFlow
                                                  keyword: <Id.ControlFlow_Continue continue>
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-sysv4.2uw2> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-sysv5> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-unixware> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-OpenUNIX> 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<X-lc>}
                                                    {<Id.Lit_Equals '='>}
                                                    {(DQ <X> ($ Id.VSub_DollarName arg))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.ControlFlow
                                                  keyword: <Id.ControlFlow_Continue continue>
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  spids: [32045 32072]
                                )
                                (IfArm
                                  keyword: <Id.KW_Elif elif>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<X-lc_r>}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ <X> ($ Id.VSub_DollarName arg))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-openbsd> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-freebsd> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-dragonfly> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-bitrig> 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  spids: [32358 32372]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [{<func_append>} {<deplibs>} {(DQ <' '> ($ Id.VSub_DollarName arg))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-mllvm>
                          pattern: (pat.Words words:[{<-mllvm>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'prev='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'prev='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<mllvm>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-module>
                          pattern: (pat.Words words:[{<-module>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'module='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'module='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'module='> name:module)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-model>
                          pattern: 
                            (pat.Words
                              words: [{<-model>} {<-arch>} {<-isysroot>} {<--sysroot>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<compiler_flags>}
                                {(DQ <' '> ($ Id.VSub_DollarName arg))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<compile_command>}
                                {(DQ <' '> ($ Id.VSub_DollarName arg))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<finalize_command>}
                                {(DQ <' '> ($ Id.VSub_DollarName arg))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'prev='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'prev='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<xcompiler>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-mt>
                          pattern: 
                            (pat.Words
                              words: [
                                {<-mt>}
                                {<-mthreads>}
                                {<-kthread>}
                                {<-Kthread>}
                                {<-pthread>}
                                {<-pthreads>}
                                {<--thread-safe>}
                                {<-threads>}
                                {<-fopenmp>}
                                {<-openmp>}
                                {<-mp>}
                                {<-xopenmp>}
                                {<-omp>}
                                {<-qsmp> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<compiler_flags>}
                                {(DQ <' '> ($ Id.VSub_DollarName arg))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<compile_command>}
                                {(DQ <' '> ($ Id.VSub_DollarName arg))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<finalize_command>}
                                {(DQ <' '> ($ Id.VSub_DollarName arg))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: {(DQ ($ Id.VSub_DollarName new_inherited_linker_flags) <' '>)}
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName arg) <' '>) 
                                          <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<new_inherited_linker_flags>}
                                        {(DQ <' '> ($ Id.VSub_DollarName arg))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-multi_module>
                          pattern: (pat.Words words:[{<-multi_module>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'single_module='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'single_module='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'single_module='>
                                      name: single_module
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName wl) <-multi_module>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-no-fast-install>
                          pattern: (pat.Words words:[{<-no-fast-install>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'fast_install='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'fast_install='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'fast_install='>
                                      name: fast_install
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-no-install>
                          pattern: (pat.Words words:[{<-no-install>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-cygwin> 
                                          <Id.Lit_Star '*'>
                                        }
                                        {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-mingw> 
                                          <Id.Lit_Star '*'>
                                        }
                                        {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-pw32> 
                                          <Id.Lit_Star '*'>
                                        }
                                        {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-os2> 
                                          <Id.Lit_Star '*'>
                                        }
                                        {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-darwin> 
                                          <Id.Lit_Star '*'>
                                        }
                                        {<Id.Lit_Star '*'> <-cegcc> <Id.Lit_Star '*'>}
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_warning>
                                      more_env: []
                                      words: [
                                        {<func_warning>}
                                        {
                                          (DQ <'\'-no-install\' is ignored for '> 
                                            ($ Id.VSub_DollarName host)
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_warning>
                                      more_env: []
                                      words: [
                                        {<func_warning>}
                                        {(DQ <'assuming \'-no-fast-install\' instead'>)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'fast_install='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'fast_install='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'fast_install='>
                                              name: fast_install
                                            )
                                          op: assign_op.Equal
                                          rhs: {<no>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'no_install='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'no_install='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'no_install='>
                                              name: no_install
                                            )
                                          op: assign_op.Equal
                                          rhs: {<yes>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-no-undefined>
                          pattern: (pat.Words words:[{<-no-undefined>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'allow_undefined='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'allow_undefined='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'allow_undefined='>
                                      name: allow_undefined
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-objectlist>
                          pattern: (pat.Words words:[{<-objectlist>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'prev='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'prev='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<objectlist>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-os2dllname>
                          pattern: (pat.Words words:[{<-os2dllname>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'prev='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'prev='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<os2dllname>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-o>
                          pattern: (pat.Words words:[{<-o>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'prev='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'prev='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<output>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-precious-files-regex>
                          pattern: (pat.Words words:[{<-precious-files-regex>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'prev='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'prev='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<precious_regex>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-release>
                          pattern: (pat.Words words:[{<-release>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'prev='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'prev='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<release>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-rpath>
                          pattern: (pat.Words words:[{<-rpath>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'prev='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'prev='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<rpath>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-R>
                          pattern: (pat.Words words:[{<-R>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'prev='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'prev='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<xrpath>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-R>
                          pattern: (pat.Words words:[{<-R> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_stripname>
                              more_env: []
                              words: [
                                {<func_stripname>}
                                {(SQ <-R>)}
                                {(SQ )}
                                {(DQ ($ Id.VSub_DollarName arg))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'dir='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dir='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName dir)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_LBracket '['>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_LBracket '['> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\\\'>
                                            ch: '\\'
                                          ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                        }
                                        {<Id.Lit_LBracket '['> <A-Za-z> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/'> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Equals '='>
                                  pattern: 
                                    (pat.Words
                                      words: [{<Id.Lit_Equals '='> <Id.Lit_Star '*'>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_stripname>
                                      more_env: []
                                      words: [
                                        {<func_stripname>}
                                        {(SQ <'='>)}
                                        {(SQ )}
                                        {(DQ ($ Id.VSub_DollarName dir))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'dir='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'dir='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'dir='>
                                              name: dir
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName lt_sysroot) 
                                              ($ Id.VSub_DollarName func_stripname_result)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_fatal_error>
                                      more_env: []
                                      words: [
                                        {<func_fatal_error>}
                                        {(DQ <'only absolute run-paths are allowed'>)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName xrpath) <' '>)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName dir) <' '>) 
                                          <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<xrpath>}
                                        {(DQ <' '> ($ Id.VSub_DollarName dir))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-shared>
                          pattern: (pat.Words words:[{<-shared>}])
                          middle: <Id.Right_CasePat _>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Continue continue>)]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-shrext>
                          pattern: (pat.Words words:[{<-shrext>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'prev='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'prev='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<shrext>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-static>
                          pattern: (pat.Words words:[{<-static>} {<-static-libtool-libs>}])
                          middle: <Id.Right_CasePat _>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Continue continue>)]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-thread-safe>
                          pattern: (pat.Words words:[{<-thread-safe>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'thread_safe='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'thread_safe='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'thread_safe='>
                                      name: thread_safe
                                    )
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-version-info>
                          pattern: (pat.Words words:[{<-version-info>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'prev='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'prev='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<vinfo>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-version-number>
                          pattern: (pat.Words words:[{<-version-number>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'prev='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'prev='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<vinfo>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'vinfo_number='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'vinfo_number='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'vinfo_number='>
                                      name: vinfo_number
                                    )
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-weak>
                          pattern: (pat.Words words:[{<-weak>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'prev='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'prev='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<weak>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-Wc>
                          pattern: (pat.Words words:[{<-Wc> <Id.Lit_Comma ','> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_stripname>
                              more_env: []
                              words: [
                                {<func_stripname>}
                                {(SQ <'-Wc,'>)}
                                {(SQ )}
                                {(DQ ($ Id.VSub_DollarName arg))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'args='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'args='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'args='> name:args)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'arg='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'arg='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'save_ifs='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'save_ifs='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'save_ifs='>
                                          name: save_ifs
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName IFS)}
                                    )
                                  ]
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'IFS='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'IFS='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Comma ','>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [flag]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName args)}])
                              semi_tok: <Id.Op_Semi _>
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'IFS='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'IFS='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'IFS='>
                                              name: IFS
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName save_ifs)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_quote_for_eval>
                                      more_env: []
                                      words: [{<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName flag))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<arg>}
                                        {(DQ <' '> ($ Id.VSub_DollarName func_quote_for_eval_result))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<compiler_flags>}
                                        {(DQ <' '> ($ Id.VSub_DollarName func_quote_for_eval_result))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'IFS='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'IFS='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName save_ifs)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_stripname>
                              more_env: []
                              words: [
                                {<func_stripname>}
                                {(SQ <' '>)}
                                {(SQ )}
                                {(DQ ($ Id.VSub_DollarName arg))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'arg='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'arg='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-Wl>
                          pattern: (pat.Words words:[{<-Wl> <Id.Lit_Comma ','> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_stripname>
                              more_env: []
                              words: [
                                {<func_stripname>}
                                {(SQ <'-Wl,'>)}
                                {(SQ )}
                                {(DQ ($ Id.VSub_DollarName arg))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'args='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'args='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'args='> name:args)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'arg='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'arg='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'save_ifs='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'save_ifs='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'save_ifs='>
                                          name: save_ifs
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName IFS)}
                                    )
                                  ]
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'IFS='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'IFS='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Comma ','>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [flag]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName args)}])
                              semi_tok: <Id.Op_Semi _>
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'IFS='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'IFS='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'IFS='>
                                              name: IFS
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName save_ifs)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_quote_for_eval>
                                      more_env: []
                                      words: [{<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName flag))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<arg>}
                                        {
                                          (DQ <' '> ($ Id.VSub_DollarName wl) 
                                            ($ Id.VSub_DollarName func_quote_for_eval_result)
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<compiler_flags>}
                                        {
                                          (DQ <' '> ($ Id.VSub_DollarName wl) 
                                            ($ Id.VSub_DollarName func_quote_for_eval_result)
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<linker_flags>}
                                        {(DQ <' '> ($ Id.VSub_DollarName func_quote_for_eval_result))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'IFS='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'IFS='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName save_ifs)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_stripname>
                              more_env: []
                              words: [
                                {<func_stripname>}
                                {(SQ <' '>)}
                                {(SQ )}
                                {(DQ ($ Id.VSub_DollarName arg))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'arg='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'arg='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-Xcompiler>
                          pattern: (pat.Words words:[{<-Xcompiler>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'prev='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'prev='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<xcompiler>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-Xlinker>
                          pattern: (pat.Words words:[{<-Xlinker>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'prev='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'prev='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<xlinker>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-XCClinker>
                          pattern: (pat.Words words:[{<-XCClinker>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'prev='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'prev='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev='> name:prev)
                                  op: assign_op.Equal
                                  rhs: {<xcclinker>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-msg_>
                          pattern: (pat.Words words:[{<-msg_> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_quote_for_eval>
                              more_env: []
                              words: [{<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName arg))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'arg='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'arg='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_quote_for_eval_result)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-64>
                          pattern: 
                            (pat.Words
                              words: [
                                {<-64>}
                                {<-mips> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>}
                                {<-r> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                }
                                {<-xarch> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<-xtarget> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<Id.Lit_Other '+'> <DA> <Id.Lit_Star '*'>}
                                {<Id.Lit_Other '+'> <DD> <Id.Lit_Star '*'>}
                                {<-q> <Id.Lit_Star '*'>}
                                {<-m> <Id.Lit_Star '*'>}
                                {<-t> <Id.Lit_LBracket '['> <45> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>}
                                {<-txscale> <Id.Lit_Star '*'>}
                                {<-p>}
                                {<-pg>}
                                {<--coverage>}
                                {<-fprofile-> <Id.Lit_Star '*'>}
                                {<-F> <Id.Lit_Star '*'>}
                                {<Id.Lit_At '@'> <Id.Lit_Star '*'>}
                                {<-tp> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<--sysroot> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<-O> <Id.Lit_Star '*'>}
                                {<-g> <Id.Lit_Star '*'>}
                                {<-flto> <Id.Lit_Star '*'>}
                                {<-fwhopr> <Id.Lit_Star '*'>}
                                {<-fuse-linker-plugin>}
                                {<-fstack-protector> <Id.Lit_Star '*'>}
                                {<-stdlib> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<-specs> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                {<-fsanitize> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_quote_for_eval>
                              more_env: []
                              words: [{<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName arg))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'arg='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'arg='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_quote_for_eval_result)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<compile_command>}
                                {(DQ <' '> ($ Id.VSub_DollarName arg))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<finalize_command>}
                                {(DQ <' '> ($ Id.VSub_DollarName arg))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<compiler_flags>}
                                {(DQ <' '> ($ Id.VSub_DollarName arg))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-Z>
                          pattern: (pat.Words words:[{<-Z> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<os2>}
                                                {<Id.Lit_Equals '='>}
                                                {
                                                  (DQ 
                                                    (CommandSub
                                                      left_token: <Id.Left_Backtick '`'>
                                                      child: 
                                                        (command.Simple
                                                          blame_tok: <expr>
                                                          more_env: []
                                                          words: [
                                                            {<expr>}
                                                            {($ Id.VSub_DollarName host)}
                                                            {<Id.Lit_Colon ':'>}
                                                            {(SQ <'.*\\(os2\\)'>)}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      right: <Id.Backtick_Right '`'>
                                                    )
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'compiler_flags='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'compiler_flags='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'compiler_flags='>
                                              name: compiler_flags
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName compiler_flags) <' '> 
                                                ($ Id.VSub_DollarName arg)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<compile_command>}
                                        {(DQ <' '> ($ Id.VSub_DollarName arg))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<finalize_command>}
                                        {(DQ <' '> ($ Id.VSub_DollarName arg))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName arg)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <-Zlinker>
                                          pattern: (pat.Words words:[{<-Zlinker>} {<-Zstack>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'prev='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'prev='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'prev='>
                                                      name: prev
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<xcompiler>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [33707 33736]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <func_quote_for_eval>
                                  more_env: []
                                  words: [{<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName arg))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'arg='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'arg='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName func_quote_for_eval_result)}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <->
                          pattern: 
                            (pat.Words
                              words: [{<-> <Id.Lit_Star '*'>} {<Id.Lit_Other '+'> <Id.Lit_Star '*'>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_quote_for_eval>
                              more_env: []
                              words: [{<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName arg))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'arg='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'arg='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_quote_for_eval_result)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [{<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName objext)}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [{<func_append>} {<objs>} {(DQ <' '> ($ Id.VSub_DollarName arg))}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.lo>}])
                          middle: <Id.Right_CasePat _>
                          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: <func_lalib_unsafe_p>
                                              more_env: []
                                              words: [
                                                {<func_lalib_unsafe_p>}
                                                {(DQ ($ Id.VSub_DollarName arg))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'pic_object='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'pic_object='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'pic_object='>
                                              name: pic_object
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'non_pic_object='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'non_pic_object='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'non_pic_object='>
                                              name: non_pic_object
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_source>
                                      more_env: []
                                      words: [{<func_source>} {(DQ ($ Id.VSub_DollarName arg))}]
                                      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.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-z>}
                                                            {(DQ ($ Id.VSub_DollarName pic_object))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-z>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName non_pic_object)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<none>}
                                                            {<Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName pic_object))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<none>}
                                                            {<Id.Lit_Equals '='>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName non_pic_object)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [
                                                        <Id.Op_DPipe _>
                                                        <Id.Op_DPipe _>
                                                        <Id.Op_DAmp _>
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_fatal_error>
                                              more_env: []
                                              words: [
                                                {<func_fatal_error>}
                                                {
                                                  (DQ <'cannot find name of object for \''> 
                                                    ($ Id.VSub_DollarName arg) <'\''>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [33922 33970]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_dirname>
                                      more_env: []
                                      words: [
                                        {<func_dirname>}
                                        {(DQ ($ Id.VSub_DollarName arg))}
                                        {(DQ <'/'>)}
                                        {(DQ )}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'xdir='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'xdir='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'xdir='>
                                              name: xdir
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_dirname_result)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<none>}
                                            {<Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_DollarName pic_object))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'pic_object='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'pic_object='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'pic_object='>
                                                      name: pic_object
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName xdir) 
                                                      ($ Id.VSub_DollarName pic_object)
                                                    }
                                                )
                                              ]
                                              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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<dlfiles>}
                                                                {<Id.Lit_Equals '='>}
                                                                {(DQ ($ Id.VSub_DollarName prev))}
                                                              ]
                                                              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.AndOr
                                                                      children: [
                                                                        (command.Simple
                                                                          blame_tok: <test>
                                                                          more_env: []
                                                                          words: [
                                                                            {<test>}
                                                                            {<yes>}
                                                                            {<Id.Lit_Equals '='>}
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName build_libtool_libs
                                                                                )
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                        (command.Simple
                                                                          blame_tok: <test>
                                                                          more_env: []
                                                                          words: [
                                                                            {<test>}
                                                                            {<yes>}
                                                                            {<Id.Lit_Equals '='>}
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName dlopen_support
                                                                                )
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                      ]
                                                                      ops: [<Id.Op_DAmp _>]
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_append>
                                                              more_env: []
                                                              words: [
                                                                {<func_append>}
                                                                {<dlfiles>}
                                                                {
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName pic_object)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'prev='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'prev='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'prev='>
                                                                      name: prev
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: (rhs_word__Empty)
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ControlFlow
                                                              keyword: 
                                                                <Id.ControlFlow_Continue continue>
                                                            )
                                                          ]
                                                          spids: [34050 34075]
                                                        )
                                                      ]
                                                      else_kw: <Id.KW_Else else>
                                                      else_action: [
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'prev='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'prev='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'prev='>
                                                                  name: prev
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<dlprefiles>}
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [34034 34047]
                                                )
                                              ]
                                              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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<dlprefiles>}
                                                                {<Id.Lit_Equals '='>}
                                                                {(DQ ($ Id.VSub_DollarName prev))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<dlprefiles>}
                                                        {(DQ <' '> ($ Id.VSub_DollarName pic_object))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'prev='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'prev='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'prev='>
                                                              name: prev
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [34116 34129]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<libobjs>}
                                                {(DQ <' '> ($ Id.VSub_DollarName pic_object))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'arg='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'arg='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'arg='>
                                                      name: arg
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName pic_object)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (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>}
                                                        {<none>}
                                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                        {(DQ ($ Id.VSub_DollarName non_pic_object))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'non_pic_object='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'non_pic_object='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'non_pic_object='>
                                                      name: non_pic_object
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName xdir) 
                                                      ($ Id.VSub_DollarName non_pic_object)
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<non_pic_objects>}
                                                {(DQ <' '> ($ Id.VSub_DollarName non_pic_object))}
                                              ]
                                              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.AndOr
                                                              children: [
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<-z>}
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
pic_object
                                                                        )
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<none>}
                                                                    {<Id.Lit_Equals '='>}
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
pic_object
                                                                        )
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              ops: [<Id.Op_DPipe _>]
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'arg='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'arg='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'arg='>
                                                              name: arg
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName non_pic_object)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [34220 34243]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          spids: [34179 34193]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'non_pic_object='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'non_pic_object='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'non_pic_object='>
                                                  name: non_pic_object
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName pic_object)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <func_append>
                                          more_env: []
                                          words: [
                                            {<func_append>}
                                            {<non_pic_objects>}
                                            {(DQ <' '> ($ Id.VSub_DollarName non_pic_object))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [33891 33900]
                                )
                              ]
                              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.Simple
                                                  blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                                  more_env: []
                                                  words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.Simple
                                          blame_tok: <func_dirname>
                                          more_env: []
                                          words: [
                                            {<func_dirname>}
                                            {(DQ ($ Id.VSub_DollarName arg))}
                                            {(DQ <'/'>)}
                                            {(DQ )}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'xdir='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'xdir='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'xdir='>
                                                  name: xdir
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName func_dirname_result)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <func_lo2o>
                                          more_env: []
                                          words: [{<func_lo2o>} {(DQ ($ Id.VSub_DollarName arg))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'pic_object='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'pic_object='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'pic_object='>
                                                  name: pic_object
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName xdir) 
                                                  ($ Id.VSub_DollarName objdir) <'/'> ($ Id.VSub_DollarName func_lo2o_result)
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'non_pic_object='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'non_pic_object='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'non_pic_object='>
                                                  name: non_pic_object
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName xdir) 
                                                  ($ Id.VSub_DollarName func_lo2o_result)
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <func_append>
                                          more_env: []
                                          words: [
                                            {<func_append>}
                                            {<libobjs>}
                                            {(DQ <' '> ($ Id.VSub_DollarName pic_object))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <func_append>
                                          more_env: []
                                          words: [
                                            {<func_append>}
                                            {<non_pic_objects>}
                                            {(DQ <' '> ($ Id.VSub_DollarName non_pic_object))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      spids: [34288 34293]
                                    )
                                  ]
                                  else_kw: <Id.KW_Else else>
                                  else_action: [
                                    (command.Simple
                                      blame_tok: <func_fatal_error>
                                      more_env: []
                                      words: [
                                        {<func_fatal_error>}
                                        {
                                          (DQ <'\''> ($ Id.VSub_DollarName arg) 
                                            <'\' is not a valid libtool object'>
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  fi_kw: <Id.KW_Fi fi>
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [{<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName libext)}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [{<func_append>} {<deplibs>} {(DQ <' '> ($ Id.VSub_DollarName arg))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<old_deplibs>}
                                {(DQ <' '> ($ Id.VSub_DollarName arg))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.la>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_resolve_sysroot>
                              more_env: []
                              words: [{<func_resolve_sysroot>} {(DQ ($ Id.VSub_DollarName arg))}]
                              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>}
                                                {<dlfiles>}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName prev))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<dlfiles>}
                                        {
                                          (DQ <' '> ($ Id.VSub_DollarName func_resolve_sysroot_result))
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prev='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prev='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [34434 34447]
                                )
                                (IfArm
                                  keyword: <Id.KW_Elif elif>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<dlprefiles>}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName prev))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<dlprefiles>}
                                        {
                                          (DQ <' '> ($ Id.VSub_DollarName func_resolve_sysroot_result))
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'prev='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'prev='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'prev='>
                                              name: prev
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [34467 34480]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <func_append>
                                  more_env: []
                                  words: [
                                    {<func_append>}
                                    {<deplibs>}
                                    {(DQ <' '> ($ Id.VSub_DollarName func_resolve_sysroot_result))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_quote_for_eval>
                              more_env: []
                              words: [{<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName arg))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'arg='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'arg='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_quote_for_eval_result)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      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: <test>
                                      more_env: []
                                      words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName arg))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<compile_command>}
                                {(DQ <' '> ($ Id.VSub_DollarName arg))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<finalize_command>}
                                {(DQ <' '> ($ Id.VSub_DollarName arg))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [34564 34575]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName prev))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <func_fatal_help>
                  more_env: []
                  words: [
                    {<func_fatal_help>}
                    {
                      (DQ <'the \''> ($ Id.VSub_DollarName prevarg) <'\' option requires an argument'>)
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<yes>}
                                    {<Id.Lit_Equals '='>}
                                    {(DQ ($ Id.VSub_DollarName export_dynamic))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<-n>}
                                    {(DQ ($ Id.VSub_DollarName export_dynamic_flag_spec))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {<Id.Lit_VarLike 'arg='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          ) ($ Id.VSub_DollarName export_dynamic_flag_spec) 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <func_append>
                      more_env: []
                      words: [{<func_append>} {<compile_command>} {(DQ <' '> ($ Id.VSub_DollarName arg))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <func_append>
                      more_env: []
                      words: [
                        {<func_append>}
                        {<finalize_command>}
                        {(DQ <' '> ($ Id.VSub_DollarName arg))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [34630 34653]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'oldlibs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'oldlibs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldlibs='> name:oldlibs)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <func_basename>
              more_env: []
              words: [{<func_basename>} {(DQ ($ Id.VSub_DollarName output))}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'outputname='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'outputname='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'outputname='> name:outputname)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_basename_result)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'libobjs_save='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'libobjs_save='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libobjs_save='> name:libobjs_save)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName libobjs)}
                )
              ]
              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: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName shlibpath_var))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {<Id.Lit_VarLike 'shlib_search_path='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <ECHO>
                        }
                        {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) ($ Id.VSub_DollarName shlibpath_var) 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                            ch: '"'
                          )
                        }
                        {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\|'> ch:'|')}
                        {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <SED>}
                        {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') <'s/'> 
                          <Id.Lit_Colon ':'> <'/'>
                        }
                        {<'/g'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                            ch: '`'
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [34711 34722]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'shlib_search_path='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'shlib_search_path='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'shlib_search_path='>
                          name: shlib_search_path
                        )
                      op: assign_op.Equal
                      rhs: (rhs_word__Empty)
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {<Id.Lit_VarLike 'sys_lib_search_path='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) ($ Id.VSub_DollarName sys_lib_search_path_spec) 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {<Id.Lit_VarLike 'sys_lib_dlsearch_path='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  ) ($ Id.VSub_DollarName sys_lib_dlsearch_path_spec) 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\"'>
                    ch: '"'
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <func_munge_path_list>
              more_env: []
              words: [
                {<func_munge_path_list>}
                {<sys_lib_dlsearch_path>}
                {(DQ ($ Id.VSub_DollarName LT_SYS_LIBRARY_PATH))}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <func_dirname>
              more_env: []
              words: [{<func_dirname>} {(DQ ($ Id.VSub_DollarName output))} {(DQ <'/'>)} {(DQ )}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'output_objdir='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'output_objdir='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output_objdir='> name:output_objdir)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_dirname_result) ($ Id.VSub_DollarName objdir)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <func_to_tool_file>
              more_env: []
              words: [{<func_to_tool_file>} {(DQ ($ Id.VSub_DollarName output_objdir) <'/'>)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'tool_output_objdir='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'tool_output_objdir='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'tool_output_objdir='>
                      name: tool_output_objdir
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName func_to_tool_file_result)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <func_mkdir_p>
              more_env: []
              words: [{<func_mkdir_p>} {(DQ ($ Id.VSub_DollarName output_objdir))}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName output)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_DoubleQuote '"'>
                  pattern: (pat.Words words:[{(DQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <func_fatal_help>
                      more_env: []
                      words: [{<func_fatal_help>} {(DQ <'you must specify an output file'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName libext)}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'linkmode='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'linkmode='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'linkmode='> name:linkmode)
                          op: assign_op.Equal
                          rhs: {<oldlib>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> <.lo>}
                        {<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName objext)}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'linkmode='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'linkmode='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'linkmode='> name:linkmode)
                          op: assign_op.Equal
                          rhs: {<obj>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.la>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'linkmode='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'linkmode='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'linkmode='> name:linkmode)
                          op: assign_op.Equal
                          rhs: {<lib>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'linkmode='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'linkmode='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'linkmode='> name:linkmode)
                          op: assign_op.Equal
                          rhs: {<prog>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'specialdeplibs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'specialdeplibs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'specialdeplibs='> name:specialdeplibs)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'libs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'libs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libs='> name:libs)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [deplib]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName deplibs)}])
              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.VSub_DollarName '$opt_preserve_dup_deps'>
                                      more_env: []
                                      words: [{($ Id.VSub_DollarName opt_preserve_dup_deps)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName libs) <' '>)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> 
                                          (DQ <' '> ($ Id.VSub_DollarName deplib) <' '>) <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<specialdeplibs>}
                                        {(DQ <' '> ($ Id.VSub_DollarName deplib))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          spids: [34945 34950]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_append>
                      more_env: []
                      words: [{<func_append>} {<libs>} {(DQ <' '> ($ Id.VSub_DollarName deplib))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              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: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<lib>}
                                {<Id.Lit_Equals '='>}
                                {(DQ ($ Id.VSub_DollarName linkmode))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'libs='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'libs='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libs='> name:libs)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName predeps) <' '> ($ Id.VSub_DollarName libs) <' '> 
                                ($ Id.VSub_DollarName compiler_lib_search_path) <' '> ($ Id.VSub_DollarName postdeps)
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'pre_post_deps='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'pre_post_deps='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'pre_post_deps='>
                              name: pre_post_deps
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      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.VSub_DollarName '$opt_duplicate_compiler_generated_deps'>
                                      more_env: []
                                      words: [
                                        {
                                          ($ Id.VSub_DollarName opt_duplicate_compiler_generated_deps)
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [pre_post_dep]
                              iterable: 
                                (for_iter.Words
                                  words: [
                                    {($ Id.VSub_DollarName predeps)}
                                    {($ Id.VSub_DollarName postdeps)}
                                  ]
                                )
                              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: {(DQ ($ Id.VSub_DollarName pre_post_deps) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName pre_post_dep) <' '>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<specialdeplibs>}
                                                {(DQ <' '> ($ Id.VSub_DollarName pre_post_deps))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<pre_post_deps>}
                                        {(DQ <' '> ($ Id.VSub_DollarName pre_post_dep))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          spids: [35048 35053]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'pre_post_deps='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'pre_post_deps='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'pre_post_deps='>
                              name: pre_post_deps
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [35004 35017]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'deplibs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'deplibs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'deplibs='> name:deplibs)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'newdependency_libs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'newdependency_libs='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'newdependency_libs='>
                      name: newdependency_libs
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'newlib_search_path='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'newlib_search_path='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'newlib_search_path='>
                      name: newlib_search_path
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'need_relink='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'need_relink='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'need_relink='> name:need_relink)
                  op: assign_op.Equal
                  rhs: {<no>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'notinst_deplibs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'notinst_deplibs='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'notinst_deplibs='>
                      name: notinst_deplibs
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'notinst_path='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'notinst_path='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'notinst_path='> name:notinst_path)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName linkmode)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <lib>
                  pattern: (pat.Words words:[{<lib>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'passes='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'passes='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'passes='> name:passes)
                          op: assign_op.Equal
                          rhs: {(DQ <'conv dlpreopen link'>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [file]
                      iterable: 
                        (for_iter.Words
                          words: [{($ Id.VSub_DollarName dlfiles)} {($ Id.VSub_DollarName dlprefiles)}]
                        )
                      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 file)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.la>}])
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_fatal_help>
                                      more_env: []
                                      words: [
                                        {<func_fatal_help>}
                                        {
                                          (DQ <'libraries can \'-dlopen\' only libtool libraries: '> 
                                            ($ Id.VSub_DollarName file)
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <prog>
                  pattern: (pat.Words words:[{<prog>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'compile_deplibs='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'compile_deplibs='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'compile_deplibs='>
                              name: compile_deplibs
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'finalize_deplibs='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'finalize_deplibs='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'finalize_deplibs='>
                              name: finalize_deplibs
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'alldeplibs='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'alldeplibs='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'alldeplibs='> name:alldeplibs)
                          op: assign_op.Equal
                          rhs: {<false>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'newdlfiles='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'newdlfiles='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'newdlfiles='> name:newdlfiles)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'newdlprefiles='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'newdlprefiles='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'newdlprefiles='>
                              name: newdlprefiles
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'passes='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'passes='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'passes='> name:passes)
                          op: assign_op.Equal
                          rhs: {(DQ <'conv scan dlopen dlpreopen link'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'passes='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'passes='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'passes='> name:passes)
                          op: assign_op.Equal
                          rhs: {(DQ <conv>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [pass]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName passes)}])
              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: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<lib> <Id.Lit_Comma ','> <link>}
                                        {<Id.Lit_Equals '='>}
                                        {
                                          (DQ ($ Id.VSub_DollarName linkmode) <','> 
                                            ($ Id.VSub_DollarName pass)
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'tmp_deplibs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'tmp_deplibs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'tmp_deplibs='>
                                      name: tmp_deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [deplib]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName deplibs)}])
                              semi_tok: <Id.Op_Semi _>
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'tmp_deplibs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'tmp_deplibs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'tmp_deplibs='>
                                              name: tmp_deplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                ($ Id.VSub_DollarName tmp_deplibs)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'deplibs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'deplibs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'deplibs='>
                                      name: deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName tmp_deplibs)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [35290 35307]
                        )
                      ]
                      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.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<lib> <Id.Lit_Comma ','> <link>}
                                            {<Id.Lit_Equals '='>}
                                            {
                                              (DQ ($ Id.VSub_DollarName linkmode) <','> 
                                                ($ Id.VSub_DollarName pass)
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<prog> <Id.Lit_Comma ','> <scan>}
                                            {<Id.Lit_Equals '='>}
                                            {
                                              (DQ ($ Id.VSub_DollarName linkmode) <','> 
                                                ($ Id.VSub_DollarName pass)
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'libs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'libs='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libs='> name:libs)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName deplibs)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'deplibs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'deplibs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'deplibs='>
                                      name: deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [35352 35386]
                        )
                      ]
                      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: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<prog>}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName linkmode))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName pass)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <dlopen>
                                  pattern: (pat.Words words:[{<dlopen>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'libs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'libs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'libs='>
                                              name: libs
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName dlfiles)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <dlpreopen>
                                  pattern: (pat.Words words:[{<dlpreopen>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'libs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'libs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'libs='>
                                              name: libs
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName dlprefiles)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <link>
                                  pattern: (pat.Words words:[{<link>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'libs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'libs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'libs='>
                                              name: libs
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName deplibs) <' %DEPLIBS%'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {(DQ <X> ($ Id.VSub_DollarName link_all_deplibs))}
                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                            {<Xno>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'libs='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'libs='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'libs='>
                                                  name: libs
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName libs) <' '> 
                                                    ($ Id.VSub_DollarName dependency_libs)
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          spids: [35399 35412]
                        )
                      ]
                      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: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<lib> <Id.Lit_Comma ','> <dlpreopen>}
                                        {<Id.Lit_Equals '='>}
                                        {
                                          (DQ ($ Id.VSub_DollarName linkmode) <','> 
                                            ($ Id.VSub_DollarName pass)
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [lib]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName dlprefiles)}])
                              semi_tok: <Id.Op_Semi _>
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'dependency_libs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'dependency_libs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'dependency_libs='>
                                              name: dependency_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_resolve_sysroot>
                                      more_env: []
                                      words: [{<func_resolve_sysroot>} {(DQ ($ Id.VSub_DollarName lib))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName lib)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.la>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_source>
                                              more_env: []
                                              words: [
                                                {<func_source>}
                                                {
                                                  (DQ 
                                                    ($ Id.VSub_DollarName func_resolve_sysroot_result)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [deplib]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName dependency_libs)}]
                                        )
                                      semi_tok: <Id.Op_Semi _>
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.Simple
                                              blame_tok: <func_basename>
                                              more_env: []
                                              words: [
                                                {<func_basename>}
                                                {(DQ ($ Id.VSub_DollarName deplib))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'deplib_base='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'deplib_base='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'deplib_base='>
                                                      name: deplib_base
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName func_basename_result)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: 
                                                    {
                                                      (DQ <' '> ($ Id.VSub_DollarName weak_libs) <' '>)
                                                    }
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> ($ Id.VSub_DollarName deplib_base) 
                                                            <' '>
                                                          ) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: []
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<deplibs>}
                                                        {(DQ <' '> ($ Id.VSub_DollarName deplib))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'libs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'libs='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libs='> name:libs)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName dlprefiles)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [35482 35499]
                        )
                      ]
                      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: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<dlopen>}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName pass))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'save_deplibs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'save_deplibs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'save_deplibs='>
                                      name: save_deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName deplibs)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'deplibs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'deplibs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'deplibs='>
                                      name: deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [35641 35654]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [deplib]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName libs)}])
                      semi_tok: <Id.Op_Semi _>
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'lib='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'lib='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lib='> name:lib)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'found='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'found='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'found='> name:found)
                                  op: assign_op.Equal
                                  rhs: {<false>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName deplib)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <-mt>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<-mt>}
                                        {<-mthreads>}
                                        {<-kthread>}
                                        {<-Kthread>}
                                        {<-pthread>}
                                        {<-pthreads>}
                                        {<--thread-safe>}
                                        {<-threads>}
                                        {<-fopenmp>}
                                        {<-openmp>}
                                        {<-mp>}
                                        {<-xopenmp>}
                                        {<-omp>}
                                        {<-qsmp> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<prog> <Id.Lit_Comma ','> <link>}
                                                        {<Id.Lit_Equals '='>}
                                                        {
                                                          (DQ ($ Id.VSub_DollarName linkmode) <','> 
                                                            ($ Id.VSub_DollarName pass)
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'compile_deplibs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'compile_deplibs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'compile_deplibs='>
                                                      name: compile_deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                        ($ Id.VSub_DollarName compile_deplibs)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'finalize_deplibs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                      name: finalize_deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                        ($ Id.VSub_DollarName finalize_deplibs)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [35733 35750]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <func_append>
                                          more_env: []
                                          words: [
                                            {<func_append>}
                                            {<compiler_flags>}
                                            {(DQ <' '> ($ Id.VSub_DollarName deplib))}
                                          ]
                                          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>}
                                                            {<lib>}
                                                            {<Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName linkmode))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              then_kw: <Id.KW_Then then>
                                              action: [
                                                (command.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: 
                                                    (case_arg.Word
                                                      w: 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
new_inherited_linker_flags
                                                            ) <' '>
                                                          )
                                                        }
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <Id.Lit_Star '*'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ <' '> ($ Id.VSub_DollarName deplib) 
                                                                <' '>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: []
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                    (CaseArm
                                                      left: <Id.Lit_Star '*'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [{<Id.Lit_Star '*'>}]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <func_append>
                                                          more_env: []
                                                          words: [
                                                            {<func_append>}
                                                            {<new_inherited_linker_flags>}
                                                            {(DQ <' '> ($ Id.VSub_DollarName deplib))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                              ]
                                              spids: [35782 35795]
                                            )
                                          ]
                                          else_action: []
                                          fi_kw: <Id.KW_Fi fi>
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <-l>
                                  pattern: (pat.Words words:[{<-l> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<lib>}
                                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName linkmode))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<prog>}
                                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName linkmode))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_warning>
                                              more_env: []
                                              words: [
                                                {<func_warning>}
                                                {(DQ <'\'-l\' is ignored for archives/objects'>)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [35856 35883]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_stripname>
                                      more_env: []
                                      words: [
                                        {<func_stripname>}
                                        {(SQ <-l>)}
                                        {(SQ )}
                                        {(DQ ($ Id.VSub_DollarName deplib))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'name='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'name='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'name='>
                                              name: name
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                        )
                                      ]
                                      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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<lib>}
                                                        {<Id.Lit_Equals '='>}
                                                        {(DQ ($ Id.VSub_DollarName linkmode))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'searchdirs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'searchdirs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'searchdirs='>
                                                      name: searchdirs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName newlib_search_path) 
                                                        <' '> ($ Id.VSub_DollarName lib_search_path) <' '> ($ Id.VSub_DollarName compiler_lib_search_dirs) <' '> 
                                                        ($ Id.VSub_DollarName sys_lib_search_path) <' '> ($ Id.VSub_DollarName shlib_search_path)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [35917 35930]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'searchdirs='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'searchdirs='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'searchdirs='>
                                                  name: searchdirs
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName newlib_search_path) <' '> 
                                                    ($ Id.VSub_DollarName lib_search_path) <' '> ($ Id.VSub_DollarName sys_lib_search_path) <' '> ($ Id.VSub_DollarName shlib_search_path)
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [searchdir]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName searchdirs)}]
                                        )
                                      semi_tok: <Id.Op_Semi _>
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [search_ext]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [
                                                    {<.la>}
                                                    {($ Id.VSub_DollarName std_shrext)}
                                                    {<.so>}
                                                    {<.a>}
                                                  ]
                                                )
                                              semi_tok: <Id.Op_Semi _>
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'lib='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'lib='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'lib='>
                                                              name: lib
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {($ Id.VSub_DollarName searchdir) 
                                                              <'/lib'> ($ Id.VSub_DollarName name) ($ Id.VSub_DollarName search_ext)
                                                            }
                                                        )
                                                      ]
                                                      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: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<-f>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName lib)
                                                                          )
                                                                        }
                                                                      ]
                                                                      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: <test>
                                                                              more_env: []
                                                                              words: [
                                                                                {<test>}
                                                                                {<.la>}
                                                                                {<Id.Lit_Equals '='>}
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName search_ext
                                                                                    )
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'found='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'found='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'found='
                                                                                >
                                                                              name: found
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {<Id.Lit_Colon ':'>}
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [36020 36033]
                                                                )
                                                              ]
                                                              else_kw: <Id.KW_Else else>
                                                              else_action: [
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'found='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: <Id.Lit_VarLike 'found='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 'found='>
                                                                          name: found
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: {<false>}
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                              ]
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                            (command.ControlFlow
                                                              keyword: <Id.ControlFlow_Break break>
                                                              arg_word: {<2>}
                                                            )
                                                          ]
                                                          spids: [36006 36017]
                                                        )
                                                      ]
                                                      else_action: []
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      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.VSub_DollarName '$found'>
                                                      more_env: []
                                                      words: [{($ Id.VSub_DollarName found)}]
                                                      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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<yes>}
                                                                {<Id.Lit_Equals '='>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
allow_libtool_libs_with_static_runtimes
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {
                                                              (DQ <' '> ($ Id.VSub_DollarName predeps) 
                                                                <' '> ($ Id.VSub_DollarName postdeps) <' '>
                                                              )
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName deplib) <' '>
                                                                  ) <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          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: 
                                                                                <func_lalib_p>
                                                                              more_env: []
                                                                              words: [
                                                                                {<func_lalib_p>}
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName lib
                                                                                    )
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'library_names='
                                                                        >
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'library_names='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'library_names='
                                                                                >
                                                                              name: library_names
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: (rhs_word__Empty)
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'old_library='
                                                                        >
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'old_library='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'old_library='
                                                                                >
                                                                              name: old_library
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: (rhs_word__Empty)
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <func_source>
                                                                      more_env: []
                                                                      words: [
                                                                        {<func_source>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName lib)
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.ForEach
                                                                      keyword: <Id.KW_For for>
                                                                      iter_names: [l]
                                                                      iterable: 
                                                                        (for_iter.Words
                                                                          words: [
                                                                            {
                                                                              ($ Id.VSub_DollarName 
old_library
                                                                              )
                                                                            }
                                                                            {
                                                                              ($ Id.VSub_DollarName 
library_names
                                                                              )
                                                                            }
                                                                          ]
                                                                        )
                                                                      semi_tok: <Id.Op_Semi _>
                                                                      body: 
                                                                        (command.DoGroup
                                                                          left: <Id.KW_Do do>
                                                                          children: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'll='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'll='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'll='
                                                                                        >
                                                                                      name: ll
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName l
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.KW_Done done>
                                                                        )
                                                                      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: 
                                                                                        <test>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<test>}
                                                                                        {
                                                                                          (DQ <X> 
                                                                                            ($ 
Id.VSub_DollarName ll
                                                                                            )
                                                                                          )
                                                                                        }
                                                                                        {
                                                                                          <
Id.Lit_Equals '='
                                                                                          >
                                                                                        }
                                                                                        {
                                                                                          (DQ <X> 
                                                                                            ($ 
Id.VSub_DollarName old_library
                                                                                            )
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                  terminator: 
                                                                                    <Id.Op_Semi _>
                                                                                )
                                                                              ]
                                                                            )
                                                                          then_kw: <Id.KW_Then then>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'found='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'found='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'found='
                                                                                        >
                                                                                      name: found
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: {<false>}
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: 
                                                                                <func_dirname>
                                                                              more_env: []
                                                                              words: [
                                                                                {<func_dirname>}
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName lib
                                                                                    )
                                                                                  )
                                                                                }
                                                                                {(DQ )}
                                                                                {(DQ <.>)}
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'ladir='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'ladir='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'ladir='
                                                                                        >
                                                                                      name: ladir
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName func_dirname_result
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'lib='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'lib='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'lib='
                                                                                        >
                                                                                      name: lib
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName ladir
                                                                                      ) <'/'> ($ Id.VSub_DollarName old_library)
                                                                                    }
                                                                                )
                                                                              ]
                                                                              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: 
                                                                                                <
test
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  <
test
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  <
prog
                                                                                                  > <Id.Lit_Comma ','> <link>
                                                                                                }
                                                                                                {
                                                                                                  <
Id.Lit_Equals '='
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  (DQ 
                                                                                                    ($ 
Id.VSub_DollarName linkmode
                                                                                                    ) <','> ($ Id.VSub_DollarName pass)
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                          terminator: 
                                                                                            <
Id.Op_Semi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  then_kw: 
                                                                                    <Id.KW_Then then>
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'compile_deplibs='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'compile_deplibs='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'compile_deplibs='
                                                                                                >
                                                                                              name: 
compile_deplibs
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (DQ 
                                                                                                ($ 
Id.VSub_DollarName deplib
                                                                                                ) <' '> ($ Id.VSub_DollarName compile_deplibs)
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'finalize_deplibs='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'finalize_deplibs='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'finalize_deplibs='
                                                                                                >
                                                                                              name: 
finalize_deplibs
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (DQ 
                                                                                                ($ 
Id.VSub_DollarName deplib
                                                                                                ) <' '> ($ Id.VSub_DollarName finalize_deplibs)
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  spids: [36220 36237]
                                                                                )
                                                                              ]
                                                                              else_kw: 
                                                                                <Id.KW_Else else>
                                                                              else_action: [
                                                                                (command.ShAssignment
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'deplibs='
                                                                                    >
                                                                                  pairs: [
                                                                                    (AssignPair
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'deplibs='
                                                                                        >
                                                                                      lhs: 
                                                                                        (sh_lhs_expr.Name
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'deplibs='
                                                                                            >
                                                                                          name: 
deplibs
                                                                                        )
                                                                                      op: 
assign_op.Equal
                                                                                      rhs: 
                                                                                        {
                                                                                          (DQ 
                                                                                            ($ 
Id.VSub_DollarName deplib
                                                                                            ) <' '> ($ Id.VSub_DollarName deplibs)
                                                                                          )
                                                                                        }
                                                                                    )
                                                                                  ]
                                                                                  redirects: []
                                                                                )
                                                                                (command.AndOr
                                                                                  children: [
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <test>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<test>}
                                                                                        {<lib>}
                                                                                        {
                                                                                          <
Id.Lit_Equals '='
                                                                                          >
                                                                                        }
                                                                                        {
                                                                                          (DQ 
                                                                                            ($ 
Id.VSub_DollarName linkmode
                                                                                            )
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'newdependency_libs='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'newdependency_libs='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'newdependency_libs='
                                                                                                >
                                                                                              name: 
newdependency_libs
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (DQ 
                                                                                                ($ 
Id.VSub_DollarName deplib
                                                                                                ) <' '> ($ Id.VSub_DollarName newdependency_libs)
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  ops: [
                                                                                    <Id.Op_DAmp _>
                                                                                  ]
                                                                                )
                                                                              ]
                                                                              fi_kw: <Id.KW_Fi fi>
                                                                              redirects: []
                                                                            )
                                                                            (command.ControlFlow
                                                                              keyword: 
                                                                                <
Id.ControlFlow_Continue continue
                                                                                >
                                                                            )
                                                                          ]
                                                                          spids: [36169 36186]
                                                                        )
                                                                      ]
                                                                      else_action: []
                                                                      fi_kw: <Id.KW_Fi fi>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [36123 36132]
                                                                )
                                                              ]
                                                              else_action: []
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: []
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [36084 36097]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          spids: [36064 36069]
                                        )
                                      ]
                                      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.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<prog> <Id.Lit_Comma ','> <link>}
                                                            {<Id.Lit_Equals '='>}
                                                            {
                                                              (DQ ($ Id.VSub_DollarName linkmode) 
                                                                <','> ($ Id.VSub_DollarName pass)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              then_kw: <Id.KW_Then then>
                                              action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'compile_deplibs='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'compile_deplibs='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'compile_deplibs='>
                                                          name: compile_deplibs
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                            ($ Id.VSub_DollarName compile_deplibs)
                                                          )
                                                        }
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                          name: finalize_deplibs
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                            ($ Id.VSub_DollarName finalize_deplibs)
                                                          )
                                                        }
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              spids: [36321 36338]
                                            )
                                          ]
                                          else_kw: <Id.KW_Else else>
                                          else_action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'deplibs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'deplibs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'deplibs='>
                                                      name: deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                        ($ Id.VSub_DollarName deplibs)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<lib>}
                                                    {<Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName linkmode))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'newdependency_libs='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'newdependency_libs='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: 
                                                            <Id.Lit_VarLike 'newdependency_libs='>
                                                          name: newdependency_libs
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                            ($ Id.VSub_DollarName newdependency_libs)
                                                          )
                                                        }
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                          ]
                                          fi_kw: <Id.KW_Fi fi>
                                          redirects: []
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Continue continue>
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.ltframework>}])
                                  middle: <Id.Right_CasePat _>
                                  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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<prog> <Id.Lit_Comma ','> <link>}
                                                        {<Id.Lit_Equals '='>}
                                                        {
                                                          (DQ ($ Id.VSub_DollarName linkmode) <','> 
                                                            ($ Id.VSub_DollarName pass)
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'compile_deplibs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'compile_deplibs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'compile_deplibs='>
                                                      name: compile_deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                        ($ Id.VSub_DollarName compile_deplibs)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'finalize_deplibs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                      name: finalize_deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                        ($ Id.VSub_DollarName finalize_deplibs)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [36408 36425]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'deplibs='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'deplibs='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'deplibs='>
                                                  name: deplibs
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                    ($ Id.VSub_DollarName deplibs)
                                                  )
                                                }
                                            )
                                          ]
                                          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: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<lib>}
                                                            {<Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName linkmode))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              then_kw: <Id.KW_Then then>
                                              action: [
                                                (command.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: 
                                                    (case_arg.Word
                                                      w: 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
new_inherited_linker_flags
                                                            ) <' '>
                                                          )
                                                        }
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <Id.Lit_Star '*'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ <' '> ($ Id.VSub_DollarName deplib) 
                                                                <' '>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: []
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                    (CaseArm
                                                      left: <Id.Lit_Star '*'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [{<Id.Lit_Star '*'>}]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <func_append>
                                                          more_env: []
                                                          words: [
                                                            {<func_append>}
                                                            {<new_inherited_linker_flags>}
                                                            {(DQ <' '> ($ Id.VSub_DollarName deplib))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                              ]
                                              spids: [36455 36468]
                                            )
                                          ]
                                          else_action: []
                                          fi_kw: <Id.KW_Fi fi>
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <-L>
                                  pattern: (pat.Words words:[{<-L> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName linkmode)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <lib>
                                          pattern: (pat.Words words:[{<lib>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'deplibs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'deplibs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'deplibs='>
                                                      name: deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                        ($ Id.VSub_DollarName deplibs)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<conv>}
                                                    {<Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName pass))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.ControlFlow
                                                  keyword: <Id.ControlFlow_Continue continue>
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'newdependency_libs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'newdependency_libs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'newdependency_libs='>
                                                      name: newdependency_libs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                        ($ Id.VSub_DollarName newdependency_libs)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <func_stripname>
                                              more_env: []
                                              words: [
                                                {<func_stripname>}
                                                {(SQ <-L>)}
                                                {(SQ )}
                                                {(DQ ($ Id.VSub_DollarName deplib))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <func_resolve_sysroot>
                                              more_env: []
                                              words: [
                                                {<func_resolve_sysroot>}
                                                {(DQ ($ Id.VSub_DollarName func_stripname_result))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<newlib_search_path>}
                                                {
                                                  (DQ <' '> 
                                                    ($ Id.VSub_DollarName func_resolve_sysroot_result)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <prog>
                                          pattern: (pat.Words words:[{<prog>}])
                                          middle: <Id.Right_CasePat _>
                                          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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<conv>}
                                                                {<Id.Lit_Equals '='>}
                                                                {(DQ ($ Id.VSub_DollarName pass))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'deplibs='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'deplibs='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'deplibs='>
                                                              name: deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                                ($ Id.VSub_DollarName deplibs)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Continue continue>
                                                    )
                                                  ]
                                                  spids: [36609 36622]
                                                )
                                              ]
                                              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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<scan>}
                                                                {<Id.Lit_Equals '='>}
                                                                {(DQ ($ Id.VSub_DollarName pass))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'deplibs='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'deplibs='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'deplibs='>
                                                              name: deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                                ($ Id.VSub_DollarName deplibs)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [36639 36652]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'compile_deplibs='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'compile_deplibs='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'compile_deplibs='>
                                                          name: compile_deplibs
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                            ($ Id.VSub_DollarName compile_deplibs)
                                                          )
                                                        }
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                          name: finalize_deplibs
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                            ($ Id.VSub_DollarName finalize_deplibs)
                                                          )
                                                        }
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <func_stripname>
                                              more_env: []
                                              words: [
                                                {<func_stripname>}
                                                {(SQ <-L>)}
                                                {(SQ )}
                                                {(DQ ($ Id.VSub_DollarName deplib))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <func_resolve_sysroot>
                                              more_env: []
                                              words: [
                                                {<func_resolve_sysroot>}
                                                {(DQ ($ Id.VSub_DollarName func_stripname_result))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<newlib_search_path>}
                                                {
                                                  (DQ <' '> 
                                                    ($ Id.VSub_DollarName func_resolve_sysroot_result)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_warning>
                                              more_env: []
                                              words: [
                                                {<func_warning>}
                                                {(DQ <'\'-L\' is ignored for archives/objects'>)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <-R>
                                  pattern: (pat.Words words:[{<-R> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<link>}
                                                        {<Id.Lit_Equals '='>}
                                                        {(DQ ($ Id.VSub_DollarName pass))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_stripname>
                                              more_env: []
                                              words: [
                                                {<func_stripname>}
                                                {(SQ <-R>)}
                                                {(SQ )}
                                                {(DQ ($ Id.VSub_DollarName deplib))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <func_resolve_sysroot>
                                              more_env: []
                                              words: [
                                                {<func_resolve_sysroot>}
                                                {(DQ ($ Id.VSub_DollarName func_stripname_result))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'dir='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'dir='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dir='>
                                                      name: dir
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      ($ Id.VSub_DollarName 
func_resolve_sysroot_result
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {(DQ ($ Id.VSub_DollarName xrpath) <' '>)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> ($ Id.VSub_DollarName dir) <' '>) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: []
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<xrpath>}
                                                        {(DQ <' '> ($ Id.VSub_DollarName dir))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          spids: [36753 36766]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'deplibs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'deplibs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'deplibs='>
                                              name: deplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                ($ Id.VSub_DollarName deplibs)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.la>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_resolve_sysroot>
                                      more_env: []
                                      words: [
                                        {<func_resolve_sysroot>}
                                        {(DQ ($ Id.VSub_DollarName deplib))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'lib='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'lib='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'lib='>
                                              name: lib
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_resolve_sysroot_result)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [{<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName libext)}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<conv>}
                                                        {<Id.Lit_Equals '='>}
                                                        {(DQ ($ Id.VSub_DollarName pass))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'deplibs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'deplibs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'deplibs='>
                                                      name: deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                        ($ Id.VSub_DollarName deplibs)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [36880 36893]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName linkmode)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <lib>
                                          pattern: (pat.Words words:[{<lib>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: 
                                                    {
                                                      (DQ <' '> 
                                                        ($ Id.VSub_DollarName dlpreconveniencelibs) <' '>
                                                      )
                                                    }
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> ($ Id.VSub_DollarName deplib) <' '>) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: []
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'valid_a_lib='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'valid_a_lib='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'valid_a_lib='>
                                                              name: valid_a_lib
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<false>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {
                                                              ($ Id.VSub_DollarName 
deplibs_check_method
                                                              )
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <match_pattern>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<match_pattern> <Id.Lit_Star '*'>}
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Sentence
                                                              child: 
                                                                (command.Simple
                                                                  blame_tok: <set>
                                                                  more_env: []
                                                                  words: [
                                                                    {<set>}
                                                                    {<dummy>}
                                                                    {
                                                                      ($ Id.VSub_DollarName 
deplibs_check_method
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                            (command.Simple
                                                              blame_tok: <shift>
                                                              more_env: []
                                                              words: [{<shift>}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ShAssignment
                                                              left: 
                                                                <Id.Lit_VarLike 
'match_pattern_regex='
                                                                >
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'match_pattern_regex='
                                                                    >
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'match_pattern_regex='
                                                                        >
                                                                      name: match_pattern_regex
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.Simple
                                                                            blame_tok: <expr>
                                                                            more_env: []
                                                                            words: [
                                                                              {<expr>}
                                                                              {
                                                                                (DQ 
                                                                                  ($ 
Id.VSub_DollarName deplibs_check_method
                                                                                  )
                                                                                )
                                                                              }
                                                                              {<Id.Lit_Colon ':'>}
                                                                              {
                                                                                (DQ 
                                                                                  ($ Id.VSub_Number 1) <' '> <Id.Lit_BadBackslash '\\'> <'(.*'> <Id.Lit_BadBackslash '\\'> <')'>
                                                                                )
                                                                              }
                                                                            ]
                                                                            redirects: []
                                                                            do_fork: T
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.If
                                                              if_kw: <Id.KW_If if>
                                                              arms: [
                                                                (IfArm
                                                                  keyword: <Id.KW_If if>
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (command.Pipeline
                                                                              children: [
                                                                                (command.Simple
                                                                                  blame_tok: <eval>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<eval>}
                                                                                    {
                                                                                      (DQ 
                                                                                        (word_part.EscapedLiteral
                                                                                          token: 
                                                                                            <
Id.Lit_EscapedChar '\\$'
                                                                                            >
                                                                                          ch: '$'
                                                                                        ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                                                        ($ 
Id.VSub_DollarName deplib
                                                                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: [
                                                                                    (Redir
                                                                                      op: 
                                                                                        <
Id.Redir_Great '2>'
                                                                                        >
                                                                                      loc: 
                                                                                        (redir_loc.Fd
                                                                                          fd: 2
                                                                                        )
                                                                                      arg: 
                                                                                        {
                                                                                          <
'/dev/null'
                                                                                          >
                                                                                        }
                                                                                    )
                                                                                  ]
                                                                                  do_fork: T
                                                                                )
                                                                                (command.Simple
                                                                                  blame_tok: 
                                                                                    <
Id.VSub_DollarName '$SED'
                                                                                    >
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName SED
                                                                                      )
                                                                                    }
                                                                                    {<10q>}
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                                (command.Simple
                                                                                  blame_tok: 
                                                                                    <
Id.VSub_DollarName '$EGREP'
                                                                                    >
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName EGREP
                                                                                      )
                                                                                    }
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName match_pattern_regex
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: [
                                                                                    (Redir
                                                                                      op: 
                                                                                        <
Id.Redir_Great '>'
                                                                                        >
                                                                                      loc: 
                                                                                        (redir_loc.Fd
                                                                                          fd: 1
                                                                                        )
                                                                                      arg: 
                                                                                        {
                                                                                          <
'/dev/null'
                                                                                          >
                                                                                        }
                                                                                    )
                                                                                  ]
                                                                                  do_fork: T
                                                                                )
                                                                              ]
                                                                              ops: [
                                                                                <Id.Op_Pipe _>
                                                                                <Id.Op_Pipe _>
                                                                              ]
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'valid_a_lib='
                                                                        >
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'valid_a_lib='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'valid_a_lib='
                                                                                >
                                                                              name: valid_a_lib
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {<Id.Lit_Colon ':'>}
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [37009 37045]
                                                                )
                                                              ]
                                                              else_action: []
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <pass_all>
                                                          pattern: (pat.Words words:[{<pass_all>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'valid_a_lib='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 'valid_a_lib='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'valid_a_lib='
                                                                        >
                                                                      name: valid_a_lib
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<Id.Lit_Colon ':'>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      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.VSub_DollarName 
'$valid_a_lib'
                                                                        >
                                                                      more_env: []
                                                                      words: [
                                                                        {
                                                                          ($ Id.VSub_DollarName 
valid_a_lib
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [{<echo>}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                              more_env: []
                                                              words: [
                                                                {($ Id.VSub_DollarName ECHO)}
                                                                {
                                                                  (DQ 
                                                                    <
'*** Warning: Linking the shared library '
                                                                    > ($ Id.VSub_DollarName output) <' against the'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                              more_env: []
                                                              words: [
                                                                {($ Id.VSub_DollarName ECHO)}
                                                                {
                                                                  (DQ <'*** static library '> 
                                                                    ($ Id.VSub_DollarName deplib) <' is not portable!'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'deplibs='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'deplibs='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'deplibs='>
                                                                      name: deplibs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName deplib) <' '> ($ Id.VSub_DollarName deplibs)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [37072 37077]
                                                        )
                                                      ]
                                                      else_kw: <Id.KW_Else else>
                                                      else_action: [
                                                        (command.Simple
                                                          blame_tok: <echo>
                                                          more_env: []
                                                          words: [{<echo>}]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                          more_env: []
                                                          words: [
                                                            {($ Id.VSub_DollarName ECHO)}
                                                            {
                                                              (DQ 
                                                                <
'*** Warning: Trying to link with static lib archive '
                                                                > ($ Id.VSub_DollarName deplib) <.>
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <echo>
                                                          more_env: []
                                                          words: [
                                                            {<echo>}
                                                            {
                                                              (DQ 
                                                                <
'*** I have the capability to make that library automatically link in when'
                                                                >
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <echo>
                                                          more_env: []
                                                          words: [
                                                            {<echo>}
                                                            {
                                                              (DQ 
                                                                <
'*** you link to this library.  But I can only do this if you have a'
                                                                >
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <echo>
                                                          more_env: []
                                                          words: [
                                                            {<echo>}
                                                            {
                                                              (DQ 
                                                                <
'*** shared version of the library, which you do not appear to have'
                                                                >
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <echo>
                                                          more_env: []
                                                          words: [
                                                            {<echo>}
                                                            {
                                                              (DQ 
                                                                <
'*** because the file extensions .'
                                                                > ($ Id.VSub_DollarName libext) <' of this argument makes me believe'>
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <echo>
                                                          more_env: []
                                                          words: [
                                                            {<echo>}
                                                            {
                                                              (DQ 
                                                                <
'*** that it is just a static archive that I should not use here.'
                                                                >
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <prog>
                                          pattern: (pat.Words words:[{<prog>}])
                                          middle: <Id.Right_CasePat _>
                                          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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<link>}
                                                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                                {(DQ ($ Id.VSub_DollarName pass))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'deplibs='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'deplibs='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'deplibs='>
                                                              name: deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                                ($ Id.VSub_DollarName deplibs)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [37180 37194]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'compile_deplibs='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'compile_deplibs='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'compile_deplibs='>
                                                          name: compile_deplibs
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                            ($ Id.VSub_DollarName compile_deplibs)
                                                          )
                                                        }
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                          name: finalize_deplibs
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                            ($ Id.VSub_DollarName finalize_deplibs)
                                                          )
                                                        }
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> <.lo>}
                                        {<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName objext)}
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<conv>}
                                                        {<Id.Lit_Equals '='>}
                                                        {(DQ ($ Id.VSub_DollarName pass))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'deplibs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'deplibs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'deplibs='>
                                                      name: deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                        ($ Id.VSub_DollarName deplibs)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [37256 37269]
                                        )
                                        (IfArm
                                          keyword: <Id.KW_Elif elif>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<prog>}
                                                        {<Id.Lit_Equals '='>}
                                                        {(DQ ($ Id.VSub_DollarName linkmode))}
                                                      ]
                                                      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.AndOr
                                                              children: [
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<dlpreopen>}
                                                                    {<Id.Lit_Equals '='>}
                                                                    {(DQ ($ Id.VSub_DollarName pass))}
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<yes>}
                                                                    {<Id.KW_Bang '!'> 
                                                                      <Id.Lit_Equals '='>
                                                                    }
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
dlopen_support
                                                                        )
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<no>}
                                                                    {<Id.Lit_Equals '='>}
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
build_libtool_libs
                                                                        )
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<newdlprefiles>}
                                                        {(DQ <' '> ($ Id.VSub_DollarName deplib))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'compile_deplibs='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'compile_deplibs='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 'compile_deplibs='>
                                                              name: compile_deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                                ($ Id.VSub_DollarName compile_deplibs)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 'finalize_deplibs='>
                                                              name: finalize_deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                                ($ Id.VSub_DollarName 
finalize_deplibs
                                                                )
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [37296 37334]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.Simple
                                                  blame_tok: <func_append>
                                                  more_env: []
                                                  words: [
                                                    {<func_append>}
                                                    {<newdlfiles>}
                                                    {(DQ <' '> ($ Id.VSub_DollarName deplib))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          spids: [37280 37293]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Other '%'>
                                  pattern: 
                                    (pat.Words
                                      words: [{<Id.Lit_Other '%'> <DEPLIBS> <Id.Lit_Other '%'>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'alldeplibs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'alldeplibs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'alldeplibs='>
                                              name: alldeplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: {<Id.Lit_Colon ':'>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$found'>
                                  more_env: []
                                  words: [{($ Id.VSub_DollarName found)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-f>} {(DQ ($ Id.VSub_DollarName lib))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_fatal_error>
                                  more_env: []
                                  words: [
                                    {<func_fatal_error>}
                                    {
                                      (DQ <'cannot find the library \''> ($ Id.VSub_DollarName lib) 
                                        <'\' or unhandled argument \''> ($ Id.VSub_DollarName deplib) <'\''>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <func_lalib_unsafe_p>
                                  more_env: []
                                  words: [{<func_lalib_unsafe_p>} {(DQ ($ Id.VSub_DollarName lib))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_fatal_error>
                                  more_env: []
                                  words: [
                                    {<func_fatal_error>}
                                    {
                                      (DQ <'\''> ($ Id.VSub_DollarName lib) 
                                        <'\' is not a valid libtool archive'>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                            (command.Simple
                              blame_tok: <func_dirname>
                              more_env: []
                              words: [
                                {<func_dirname>}
                                {(DQ ($ Id.VSub_DollarName lib))}
                                {(DQ )}
                                {(DQ <.>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'ladir='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'ladir='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ladir='> name:ladir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_dirname_result)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'dlname='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dlname='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dlname='> name:dlname)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'dlopen='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dlopen='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dlopen='> name:dlopen)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'dlpreopen='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dlpreopen='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'dlpreopen='>
                                      name: dlpreopen
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'libdir='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'libdir='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libdir='> name:libdir)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'library_names='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'library_names='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'library_names='>
                                      name: library_names
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'old_library='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'old_library='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'old_library='>
                                      name: old_library
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'inherited_linker_flags='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'inherited_linker_flags='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'inherited_linker_flags='>
                                      name: inherited_linker_flags
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'installed='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'installed='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'installed='>
                                      name: installed
                                    )
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'shouldnotlink='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'shouldnotlink='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'shouldnotlink='>
                                      name: shouldnotlink
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'avoidtemprpath='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'avoidtemprpath='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'avoidtemprpath='>
                                      name: avoidtemprpath
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_source>
                              more_env: []
                              words: [{<func_source>} {(DQ ($ Id.VSub_DollarName lib))}]
                              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>}
                                                {<-n>}
                                                {(DQ ($ Id.VSub_DollarName inherited_linker_flags))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'tmp_inherited_linker_flags='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'tmp_inherited_linker_flags='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'tmp_inherited_linker_flags='>
                                              name: tmp_inherited_linker_flags
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName ECHO)}
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
inherited_linker_flags
                                                              )
                                                            )
                                                          }
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName SED)}
                                                          {
                                                            (SQ 
                                                              <
's/-framework \\([^ $]*\\)/\\1.ltframework/g'
                                                              >
                                                            )
                                                          }
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [tmp_inherited_linker_flag]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName tmp_inherited_linker_flags)}]
                                        )
                                      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: 
                                                    {
                                                      (DQ <' '> 
                                                        ($ Id.VSub_DollarName 
new_inherited_linker_flags
                                                        ) <' '>
                                                      )
                                                    }
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> 
                                                            ($ Id.VSub_DollarName 
tmp_inherited_linker_flag
                                                            ) <' '>
                                                          ) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: []
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<new_inherited_linker_flags>}
                                                        {
                                                          (DQ <' '> 
                                                            ($ Id.VSub_DollarName 
tmp_inherited_linker_flag
                                                            )
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                  ]
                                  spids: [37548 37559]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'dependency_libs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dependency_libs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'dependency_libs='>
                                      name: dependency_libs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName ECHO)}
                                                  {(DQ <' '> ($ Id.VSub_DollarName dependency_libs))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {
                                                    (SQ 
                                                      <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                      >
                                                    )
                                                  }
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<lib> <Id.Lit_Comma ','> <link>}
                                                    {<Id.Lit_Equals '='>}
                                                    {
                                                      (DQ ($ Id.VSub_DollarName linkmode) <','> 
                                                        ($ Id.VSub_DollarName pass)
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<prog> <Id.Lit_Comma ','> <scan>}
                                                    {<Id.Lit_Equals '='>}
                                                    {
                                                      (DQ ($ Id.VSub_DollarName linkmode) <','> 
                                                        ($ Id.VSub_DollarName pass)
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (BraceGroup
                                                  left: <Id.Lit_LBrace '{'>
                                                  children: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.AndOr
                                                          children: [
                                                            (command.Simple
                                                              blame_tok: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<prog>}
                                                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                                {(DQ ($ Id.VSub_DollarName linkmode))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<lib>}
                                                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                                {(DQ ($ Id.VSub_DollarName linkmode))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          ops: [<Id.Op_DAmp _>]
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  redirects: []
                                                  right: <Id.Lit_RBrace '}'>
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName dlopen))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <func_append>
                                          more_env: []
                                          words: [
                                            {<func_append>}
                                            {<dlfiles>}
                                            {(DQ <' '> ($ Id.VSub_DollarName dlopen))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName dlpreopen))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <func_append>
                                          more_env: []
                                          words: [
                                            {<func_append>}
                                            {<dlprefiles>}
                                            {(DQ <' '> ($ Id.VSub_DollarName dlpreopen))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  ]
                                  spids: [37673 37739]
                                )
                              ]
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<conv>}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName pass))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'deplibs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'deplibs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'deplibs='>
                                              name: deplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName lib) <' '> 
                                                ($ Id.VSub_DollarName deplibs)
                                              )
                                            }
                                        )
                                      ]
                                      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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-z>}
                                                        {(DQ ($ Id.VSub_DollarName libdir))}
                                                      ]
                                                      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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-z>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName old_library)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_fatal_error>
                                                      more_env: []
                                                      words: [
                                                        {<func_fatal_error>}
                                                        {
                                                          (DQ 
                                                            <
'cannot find name of link library for \''
                                                            > ($ Id.VSub_DollarName lib) <'\''>
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [37828 37839]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<convenience>}
                                                {
                                                  (DQ <' '> ($ Id.VSub_DollarName ladir) <'/'> 
                                                    ($ Id.VSub_DollarName objdir) <'/'> ($ Id.VSub_DollarName old_library)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<old_convenience>}
                                                {
                                                  (DQ <' '> ($ Id.VSub_DollarName ladir) <'/'> 
                                                    ($ Id.VSub_DollarName objdir) <'/'> ($ Id.VSub_DollarName old_library)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'tmp_libs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'tmp_libs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'tmp_libs='>
                                                      name: tmp_libs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [deplib]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName dependency_libs)}]
                                                )
                                              semi_tok: <Id.Op_Semi _>
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'deplibs='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'deplibs='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'deplibs='>
                                                              name: deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                                ($ Id.VSub_DollarName deplibs)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      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.VSub_DollarName 
'$opt_preserve_dup_deps'
                                                                        >
                                                                      more_env: []
                                                                      words: [
                                                                        {
                                                                          ($ Id.VSub_DollarName 
opt_preserve_dup_deps
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
tmp_libs
                                                                        ) <' '>
                                                                      )
                                                                    }
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Star '*'> 
                                                                          (DQ <' '> 
                                                                            ($ Id.VSub_DollarName 
deplib
                                                                            ) <' '>
                                                                          ) <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <func_append>
                                                                      more_env: []
                                                                      words: [
                                                                        {<func_append>}
                                                                        {<specialdeplibs>}
                                                                        {
                                                                          (DQ <' '> 
                                                                            ($ Id.VSub_DollarName 
deplib
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [37909 37914]
                                                        )
                                                      ]
                                                      else_action: []
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<tmp_libs>}
                                                        {(DQ <' '> ($ Id.VSub_DollarName deplib))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                          ]
                                          spids: [37814 37825]
                                        )
                                        (IfArm
                                          keyword: <Id.KW_Elif elif>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<prog>}
                                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName linkmode))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<lib>}
                                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName linkmode))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_fatal_error>
                                              more_env: []
                                              words: [
                                                {<func_fatal_error>}
                                                {
                                                  (DQ <'\''> ($ Id.VSub_DollarName lib) 
                                                    <'\' is not a convenience library'>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [37967 37994]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [37786 37799]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'linklib='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'linklib='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'linklib='>
                                      name: linklib
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-n>}
                                                    {(DQ ($ Id.VSub_DollarName old_library))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (BraceGroup
                                                  left: <Id.Lit_LBrace '{'>
                                                  children: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.AndOr
                                                          children: [
                                                            (command.Simple
                                                              blame_tok: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<yes>}
                                                                {<Id.Lit_Equals '='>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
prefer_static_libs
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<built> <Id.Lit_Comma ','> <no>}
                                                                {<Id.Lit_Equals '='>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
prefer_static_libs
                                                                    ) <','> ($ Id.VSub_DollarName installed)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          ops: [<Id.Op_DPipe _>]
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  redirects: []
                                                  right: <Id.Lit_RBrace '}'>
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'linklib='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'linklib='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'linklib='>
                                              name: linklib
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName old_library)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [38027 38073]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.ForEach
                                  keyword: <Id.KW_For for>
                                  iter_names: [l]
                                  iterable: 
                                    (for_iter.Words
                                      words: [
                                        {($ Id.VSub_DollarName old_library)}
                                        {($ Id.VSub_DollarName library_names)}
                                      ]
                                    )
                                  semi_tok: <Id.Op_Semi _>
                                  body: 
                                    (command.DoGroup
                                      left: <Id.KW_Do do>
                                      children: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'linklib='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'linklib='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'linklib='>
                                                  name: linklib
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName l)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      right: <Id.KW_Done done>
                                    )
                                  redirects: []
                                )
                              ]
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-z>}
                                                {(DQ ($ Id.VSub_DollarName linklib))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_fatal_error>
                                      more_env: []
                                      words: [
                                        {<func_fatal_error>}
                                        {
                                          (DQ <'cannot find name of link library for \''> 
                                            ($ Id.VSub_DollarName lib) <'\''>
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [38107 38118]
                                )
                              ]
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<dlopen>}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName pass))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName libdir))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <func_fatal_error>
                                          more_env: []
                                          words: [
                                            {<func_fatal_error>}
                                            {
                                              (DQ <'cannot -dlopen a convenience library: \''> 
                                                ($ Id.VSub_DollarName lib) <'\''>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.AndOr
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-z>}
                                                        {(DQ ($ Id.VSub_DollarName dlname))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<yes>}
                                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                        {(DQ ($ Id.VSub_DollarName dlopen_support))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<no>}
                                                        {<Id.Lit_Equals '='>}
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName build_libtool_libs)
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<dlprefiles>}
                                                {
                                                  (DQ <' '> ($ Id.VSub_DollarName lib) <' '> 
                                                    ($ Id.VSub_DollarName dependency_libs)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [38175 38213]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <func_append>
                                          more_env: []
                                          words: [
                                            {<func_append>}
                                            {<newdlfiles>}
                                            {(DQ <' '> ($ Id.VSub_DollarName lib))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [38138 38151]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName ladir)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_LBracket '['>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_LBracket '['> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\\\'>
                                            ch: '\\'
                                          ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                        }
                                        {<Id.Lit_LBracket '['> <A-Za-z> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/'> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'abs_ladir='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'abs_ladir='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'abs_ladir='>
                                              name: abs_ladir
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName ladir)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'abs_ladir='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'abs_ladir='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'abs_ladir='>
                                              name: abs_ladir
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.AndOr
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <cd>
                                                        more_env: []
                                                        words: [
                                                          {<cd>}
                                                          {(DQ ($ Id.VSub_DollarName ladir))}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <pwd>
                                                        more_env: []
                                                        words: [{<pwd>}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_DAmp _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-z>}
                                                        {(DQ ($ Id.VSub_DollarName abs_ladir))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_warning>
                                              more_env: []
                                              words: [
                                                {<func_warning>}
                                                {
                                                  (DQ 
                                                    <
'cannot determine absolute directory name of \''
                                                    > ($ Id.VSub_DollarName ladir) <'\''>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <func_warning>
                                              more_env: []
                                              words: [
                                                {<func_warning>}
                                                {
                                                  (DQ 
                                                    <
'passing it literally to the linker, although it might fail'
                                                    >
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'abs_ladir='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'abs_ladir='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'abs_ladir='>
                                                      name: abs_ladir
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName ladir)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [38326 38337]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_basename>
                              more_env: []
                              words: [{<func_basename>} {(DQ ($ Id.VSub_DollarName lib))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'laname='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'laname='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'laname='> name:laname)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_basename_result)}
                                )
                              ]
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<yes>}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName installed))}
                                              ]
                                              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.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<Id.KW_Bang '!'>}
                                                            {<-f>}
                                                            {
                                                              (DQ ($ Id.VSub_DollarName lt_sysroot) 
                                                                ($ Id.VSub_DollarName libdir) <'/'> ($ Id.VSub_DollarName linklib)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-f>}
                                                            {
                                                              (DQ ($ Id.VSub_DollarName abs_ladir) 
                                                                <'/'> ($ Id.VSub_DollarName linklib)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_warning>
                                              more_env: []
                                              words: [
                                                {<func_warning>}
                                                {
                                                  (DQ <'library \''> ($ Id.VSub_DollarName lib) 
                                                    <'\' was moved.'>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'dir='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'dir='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dir='>
                                                      name: dir
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName ladir)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'absdir='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'absdir='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'absdir='>
                                                      name: absdir
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName abs_ladir)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'libdir='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'libdir='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'libdir='>
                                                      name: libdir
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName abs_ladir)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [38401 38429]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'dir='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'dir='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'dir='>
                                                  name: dir
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName lt_sysroot) 
                                                  ($ Id.VSub_DollarName libdir)
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'absdir='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'absdir='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'absdir='>
                                                  name: absdir
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName lt_sysroot) 
                                                  ($ Id.VSub_DollarName libdir)
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<yes>}
                                            {<Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_DollarName hardcode_automatic))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'avoidtemprpath='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'avoidtemprpath='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'avoidtemprpath='>
                                                  name: avoidtemprpath
                                                )
                                              op: assign_op.Equal
                                              rhs: {<yes>}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  ]
                                  spids: [38385 38398]
                                )
                              ]
                              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.AndOr
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<Id.KW_Bang '!'>}
                                                        {<-f>}
                                                        {
                                                          (DQ ($ Id.VSub_DollarName ladir) <'/'> 
                                                            ($ Id.VSub_DollarName objdir) <'/'> ($ Id.VSub_DollarName linklib)
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-f>}
                                                        {
                                                          (DQ ($ Id.VSub_DollarName abs_ladir) <'/'> 
                                                            ($ Id.VSub_DollarName linklib)
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DAmp _>]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'dir='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'dir='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'dir='>
                                                  name: dir
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName ladir)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'absdir='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'absdir='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'absdir='>
                                                  name: absdir
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName abs_ladir)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <func_append>
                                          more_env: []
                                          words: [
                                            {<func_append>}
                                            {<notinst_path>}
                                            {(DQ <' '> ($ Id.VSub_DollarName abs_ladir))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      spids: [38488 38517]
                                    )
                                  ]
                                  else_kw: <Id.KW_Else else>
                                  else_action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'dir='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'dir='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'dir='>
                                              name: dir
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName ladir) <'/'> 
                                              ($ Id.VSub_DollarName objdir)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'absdir='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'absdir='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'absdir='>
                                              name: absdir
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName abs_ladir) <'/'> 
                                              ($ Id.VSub_DollarName objdir)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<notinst_path>}
                                        {(DQ <' '> ($ Id.VSub_DollarName abs_ladir))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  fi_kw: <Id.KW_Fi fi>
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_stripname>
                              more_env: []
                              words: [
                                {<func_stripname>}
                                {(SQ <lib>)}
                                {(SQ <.la>)}
                                {(DQ ($ Id.VSub_DollarName laname))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'name='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'name='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name='> name:name)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                )
                              ]
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<dlpreopen>}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName pass))}
                                              ]
                                              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.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-z>}
                                                            {(DQ ($ Id.VSub_DollarName libdir))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<prog>}
                                                            {<Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName linkmode))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_fatal_error>
                                              more_env: []
                                              words: [
                                                {<func_fatal_error>}
                                                {
                                                  (DQ 
                                                    <
'only libraries may -dlpreopen a convenience library: \''
                                                    > ($ Id.VSub_DollarName lib) <'\''>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [38620 38643]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}
                                                {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}
                                                {<Id.Lit_Star '*'> <cegcc> <Id.Lit_Star '*'>}
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-n>}
                                                                {(DQ ($ Id.VSub_DollarName dlname))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_tr_sh>
                                                      more_env: []
                                                      words: [
                                                        {<func_tr_sh>}
                                                        {
                                                          (DQ ($ Id.VSub_DollarName dir) <'/'> 
                                                            ($ Id.VSub_DollarName linklib)
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [
                                                        {<eval>}
                                                        {
                                                          (DQ <libfile_> 
                                                            ($ Id.VSub_DollarName func_tr_sh_result) <'='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'abs_ladir/'> 
                                                            (word_part.EscapedLiteral
                                                              token: <Id.Lit_EscapedChar '\\$'>
                                                              ch: '$'
                                                            ) <laname>
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<newdlprefiles>}
                                                        {
                                                          (DQ <' '> ($ Id.VSub_DollarName dir) <'/'> 
                                                            ($ Id.VSub_DollarName linklib)
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [38720 38731]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.Simple
                                                  blame_tok: <func_append>
                                                  more_env: []
                                                  words: [
                                                    {<func_append>}
                                                    {<newdlprefiles>}
                                                    {
                                                      (DQ <' '> ($ Id.VSub_DollarName dir) <'/'> 
                                                        ($ Id.VSub_DollarName old_library)
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.AndOr
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-z>}
                                                        {(DQ ($ Id.VSub_DollarName libdir))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<dlpreconveniencelibs>}
                                                        {
                                                          (DQ <' '> ($ Id.VSub_DollarName dir) <'/'> 
                                                            ($ Id.VSub_DollarName old_library)
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DAmp _>]
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-n>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName old_library)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<newdlprefiles>}
                                                        {
                                                          (DQ <' '> ($ Id.VSub_DollarName dir) <'/'> 
                                                            ($ Id.VSub_DollarName old_library)
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-z>}
                                                            {(DQ ($ Id.VSub_DollarName libdir))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <func_append>
                                                          more_env: []
                                                          words: [
                                                            {<func_append>}
                                                            {<dlpreconveniencelibs>}
                                                            {
                                                              (DQ <' '> ($ Id.VSub_DollarName dir) 
                                                                <'/'> ($ Id.VSub_DollarName old_library)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  ]
                                                  spids: [38834 38845]
                                                )
                                                (IfArm
                                                  keyword: <Id.KW_Elif elif>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.Simple
                                                              blame_tok: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-n>}
                                                                {(DQ ($ Id.VSub_DollarName dlname))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<newdlprefiles>}
                                                        {
                                                          (DQ <' '> ($ Id.VSub_DollarName dir) <'/'> 
                                                            ($ Id.VSub_DollarName dlname)
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [38896 38907]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.Simple
                                                  blame_tok: <func_append>
                                                  more_env: []
                                                  words: [
                                                    {<func_append>}
                                                    {<newdlprefiles>}
                                                    {
                                                      (DQ <' '> ($ Id.VSub_DollarName dir) <'/'> 
                                                        ($ Id.VSub_DollarName linklib)
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  spids: [38604 38617]
                                )
                              ]
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-z>}
                                                {(DQ ($ Id.VSub_DollarName libdir))}
                                              ]
                                              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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<lib>}
                                                        {<Id.Lit_Equals '='>}
                                                        {(DQ ($ Id.VSub_DollarName linkmode))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'deplibs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'deplibs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'deplibs='>
                                                      name: deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName dir) <'/'> 
                                                        ($ Id.VSub_DollarName old_library) <' '> ($ Id.VSub_DollarName deplibs)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [38971 38984]
                                        )
                                        (IfArm
                                          keyword: <Id.KW_Elif elif>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<prog> <Id.Lit_Comma ','> <link>}
                                                        {<Id.Lit_Equals '='>}
                                                        {
                                                          (DQ ($ Id.VSub_DollarName linkmode) <','> 
                                                            ($ Id.VSub_DollarName pass)
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'compile_deplibs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'compile_deplibs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'compile_deplibs='>
                                                      name: compile_deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName dir) <'/'> 
                                                        ($ Id.VSub_DollarName old_library) <' '> ($ Id.VSub_DollarName compile_deplibs)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'finalize_deplibs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                      name: finalize_deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName dir) <'/'> 
                                                        ($ Id.VSub_DollarName old_library) <' '> ($ Id.VSub_DollarName finalize_deplibs)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [38997 39014]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'deplibs='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'deplibs='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'deplibs='>
                                                  name: deplibs
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName lib) <' '> 
                                                    ($ Id.VSub_DollarName deplibs)
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [38953 38964]
                                )
                              ]
                              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.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<prog>}
                                                    {<Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName linkmode))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<link>}
                                                    {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName pass))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<newlib_search_path>}
                                        {(DQ <' '> ($ Id.VSub_DollarName ladir))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'deplibs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'deplibs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'deplibs='>
                                              name: deplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName lib) <' '> 
                                                ($ Id.VSub_DollarName deplibs)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'linkalldeplibs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'linkalldeplibs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'linkalldeplibs='>
                                              name: linkalldeplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: {<false>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<no>}
                                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
link_all_deplibs
                                                                )
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-z>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName library_names)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<no>}
                                                            {<Id.Lit_Equals '='>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
build_libtool_libs
                                                                )
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'linkalldeplibs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'linkalldeplibs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'linkalldeplibs='>
                                                      name: linkalldeplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<Id.Lit_Colon ':'>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [39114 39151]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'tmp_libs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'tmp_libs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'tmp_libs='>
                                              name: tmp_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [deplib]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName dependency_libs)}]
                                        )
                                      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 deplib)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <-L>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<-L> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_stripname>
                                                      more_env: []
                                                      words: [
                                                        {<func_stripname>}
                                                        {(SQ <-L>)}
                                                        {(SQ )}
                                                        {(DQ ($ Id.VSub_DollarName deplib))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <func_resolve_sysroot>
                                                      more_env: []
                                                      words: [
                                                        {<func_resolve_sysroot>}
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
func_stripname_result
                                                            )
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<newlib_search_path>}
                                                        {
                                                          (DQ <' '> 
                                                            ($ Id.VSub_DollarName 
func_resolve_sysroot_result
                                                            )
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              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.VSub_DollarName 
'$linkalldeplibs'
                                                                >
                                                              more_env: []
                                                              words: [
                                                                {
                                                                  ($ Id.VSub_DollarName 
linkalldeplibs
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'deplibs='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'deplibs='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'deplibs='>
                                                              name: deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                                ($ Id.VSub_DollarName deplibs)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [39229 39234]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'newdependency_libs='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'newdependency_libs='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: 
                                                            <Id.Lit_VarLike 'newdependency_libs='>
                                                          name: newdependency_libs
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                            ($ Id.VSub_DollarName newdependency_libs)
                                                          )
                                                        }
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              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.VSub_DollarName 
'$opt_preserve_dup_deps'
                                                                >
                                                              more_env: []
                                                              words: [
                                                                {
                                                                  ($ Id.VSub_DollarName 
opt_preserve_dup_deps
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName tmp_libs) 
                                                                <' '>
                                                              )
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName deplib) <' '>
                                                                  ) <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_append>
                                                              more_env: []
                                                              words: [
                                                                {<func_append>}
                                                                {<specialdeplibs>}
                                                                {
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName deplib)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [39267 39272]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<tmp_libs>}
                                                {(DQ <' '> ($ Id.VSub_DollarName deplib))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [39062 39088]
                                )
                              ]
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<prog> <Id.Lit_Comma ','> <link>}
                                                {<Id.Lit_Equals '='>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName linkmode) <','> 
                                                    ($ Id.VSub_DollarName pass)
                                                  )
                                                }
                                              ]
                                              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.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName library_names)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (BraceGroup
                                                          left: <Id.Lit_LBrace '{'>
                                                          children: [
                                                            (command.Sentence
                                                              child: 
                                                                (command.AndOr
                                                                  children: [
                                                                    (BraceGroup
                                                                      left: <Id.Lit_LBrace '{'>
                                                                      children: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (command.AndOr
                                                                              children: [
                                                                                (command.Simple
                                                                                  blame_tok: <test>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<test>}
                                                                                    {<no>}
                                                                                    {
                                                                                      <
Id.Lit_Equals '='
                                                                                      >
                                                                                    }
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName prefer_static_libs
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                                (command.Simple
                                                                                  blame_tok: <test>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<test>}
                                                                                    {<built> 
                                                                                      <Id.Lit_Comma 
','
                                                                                      > <yes>
                                                                                    }
                                                                                    {
                                                                                      <
Id.Lit_Equals '='
                                                                                      >
                                                                                    }
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName prefer_static_libs
                                                                                        ) <','> ($ Id.VSub_DollarName installed)
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                              ]
                                                                              ops: [<Id.Op_DPipe _>]
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                      right: <Id.Lit_RBrace '}'>
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<-z>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
old_library
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  ops: [<Id.Op_DPipe _>]
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                          redirects: []
                                                          right: <Id.Lit_RBrace '}'>
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  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.AndOr
                                                              children: [
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<-n>}
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
shlibpath_var
                                                                        )
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<-z>}
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
avoidtemprpath
                                                                        )
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              ops: [<Id.Op_DAmp _>]
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {($ Id.VSub_DollarName temp_rpath) 
                                                              <Id.Lit_Colon ':'>
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ ($ Id.VSub_DollarName absdir) 
                                                                    <':'>
                                                                  ) <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: []
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_append>
                                                              more_env: []
                                                              words: [
                                                                {<func_append>}
                                                                {<temp_rpath>}
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName absdir) 
                                                                    <':'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [39427 39448]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: 
                                                    {
                                                      (DQ <' '> 
                                                        ($ Id.VSub_DollarName sys_lib_dlsearch_path) <' '>
                                                      )
                                                    }
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> ($ Id.VSub_DollarName absdir) <' '>) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: []
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName compile_rpath) <' '>
                                                              )
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName absdir) <' '>
                                                                  ) <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: []
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_append>
                                                              more_env: []
                                                              words: [
                                                                {<func_append>}
                                                                {<compile_rpath>}
                                                                {
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName absdir)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: 
                                                    {
                                                      (DQ <' '> 
                                                        ($ Id.VSub_DollarName sys_lib_dlsearch_path) <' '>
                                                      )
                                                    }
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> ($ Id.VSub_DollarName libdir) <' '>) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: []
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName finalize_rpath) <' '>
                                                              )
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName libdir) <' '>
                                                                  ) <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: []
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_append>
                                                              more_env: []
                                                              words: [
                                                                {<func_append>}
                                                                {<finalize_rpath>}
                                                                {
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName libdir)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          spids: [39358 39420]
                                        )
                                      ]
                                      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.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: 
                                                            <Id.VSub_DollarName '$alldeplibs'>
                                                          more_env: []
                                                          words: [{($ Id.VSub_DollarName alldeplibs)}]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (BraceGroup
                                                          left: <Id.Lit_LBrace '{'>
                                                          children: [
                                                            (command.Sentence
                                                              child: 
                                                                (command.AndOr
                                                                  children: [
                                                                    (command.Simple
                                                                      blame_tok: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<pass_all>}
                                                                        {<Id.Lit_Equals '='>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
deplibs_check_method
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (BraceGroup
                                                                      left: <Id.Lit_LBrace '{'>
                                                                      children: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (command.AndOr
                                                                              children: [
                                                                                (command.Simple
                                                                                  blame_tok: <test>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<test>}
                                                                                    {<yes>}
                                                                                    {
                                                                                      <
Id.Lit_Equals '='
                                                                                      >
                                                                                    }
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName build_libtool_libs
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                                (command.Simple
                                                                                  blame_tok: <test>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<test>}
                                                                                    {<-n>}
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName library_names
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                              ]
                                                                              ops: [<Id.Op_DAmp _>]
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                      right: <Id.Lit_RBrace '}'>
                                                                    )
                                                                  ]
                                                                  ops: [<Id.Op_DPipe _>]
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                          redirects: []
                                                          right: <Id.Lit_RBrace '}'>
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [39661 39713]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [39338 39355]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'link_static='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'link_static='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'link_static='>
                                      name: link_static
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'use_static_libs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'use_static_libs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'use_static_libs='>
                                      name: use_static_libs
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName prefer_static_libs)}
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<built>}
                                                    {<Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName use_static_libs))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<yes>}
                                                    {<Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName installed))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'use_static_libs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'use_static_libs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'use_static_libs='>
                                              name: use_static_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: {<no>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [39741 39766]
                                )
                              ]
                              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.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-n>}
                                                    {(DQ ($ Id.VSub_DollarName library_names))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (BraceGroup
                                                  left: <Id.Lit_LBrace '{'>
                                                  children: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.AndOr
                                                          children: [
                                                            (command.Simple
                                                              blame_tok: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<no>}
                                                                {<Id.Lit_Equals '='>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
use_static_libs
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-z>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName old_library)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          ops: [<Id.Op_DPipe _>]
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  redirects: []
                                                  right: <Id.Lit_RBrace '}'>
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}
                                                {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}
                                                {<Id.Lit_Star '*'> <cegcc> <Id.Lit_Star '*'>}
                                                {<Id.Lit_Star '*'> <os2> <Id.Lit_Star '*'>}
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<notinst_deplibs>}
                                                {(DQ <' '> ($ Id.VSub_DollarName lib))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'need_relink='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'need_relink='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'need_relink='>
                                                      name: need_relink
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<no>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<no>}
                                                                {<Id.Lit_Equals '='>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName installed)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<notinst_deplibs>}
                                                        {(DQ <' '> ($ Id.VSub_DollarName lib))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'need_relink='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'need_relink='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'need_relink='>
                                                              name: need_relink
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<yes>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [39874 39887]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'dlopenmodule='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'dlopenmodule='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'dlopenmodule='>
                                              name: dlopenmodule
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [dlpremoduletest]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName dlprefiles)}]
                                        )
                                      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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {
                                                                  (DQ <X> 
                                                                    ($ Id.VSub_DollarName 
dlpremoduletest
                                                                    )
                                                                  )
                                                                }
                                                                {<Id.Lit_Equals '='>}
                                                                {(DQ <X> ($ Id.VSub_DollarName lib))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'dlopenmodule='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'dlopenmodule='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'dlopenmodule='>
                                                              name: dlopenmodule
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {($ Id.VSub_DollarName dlpremoduletest)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  spids: [39941 39958]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-z>}
                                                            {(DQ ($ Id.VSub_DollarName dlopenmodule))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<yes>}
                                                            {<Id.Lit_Equals '='>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName shouldnotlink)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<link>}
                                                            {<Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName pass))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [{<echo>}]
                                              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>}
                                                                {<prog>}
                                                                {<Id.Lit_Equals '='>}
                                                                {(DQ ($ Id.VSub_DollarName linkmode))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                      more_env: []
                                                      words: [
                                                        {($ Id.VSub_DollarName ECHO)}
                                                        {
                                                          (DQ 
                                                            <'*** Warning: Linking the executable '> ($ Id.VSub_DollarName output) <' against the loadable module'>
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [40015 40028]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                  more_env: []
                                                  words: [
                                                    {($ Id.VSub_DollarName ECHO)}
                                                    {
                                                      (DQ 
                                                        <'*** Warning: Linking the shared library '> ($ Id.VSub_DollarName output) <' against the loadable module'>
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$ECHO'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName ECHO)}
                                                {
                                                  (DQ <'*** '> ($ Id.VSub_DollarName linklib) 
                                                    <' is not portable!'>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [39974 40009]
                                        )
                                      ]
                                      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.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<lib>}
                                                            {<Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName linkmode))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<yes>}
                                                            {<Id.Lit_Equals '='>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
hardcode_into_libs
                                                                )
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: 
                                                    {
                                                      (DQ <' '> 
                                                        ($ Id.VSub_DollarName sys_lib_dlsearch_path) <' '>
                                                      )
                                                    }
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> ($ Id.VSub_DollarName absdir) <' '>) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: []
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName compile_rpath) <' '>
                                                              )
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName absdir) <' '>
                                                                  ) <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: []
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_append>
                                                              more_env: []
                                                              words: [
                                                                {<func_append>}
                                                                {<compile_rpath>}
                                                                {
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName absdir)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: 
                                                    {
                                                      (DQ <' '> 
                                                        ($ Id.VSub_DollarName sys_lib_dlsearch_path) <' '>
                                                      )
                                                    }
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> ($ Id.VSub_DollarName libdir) <' '>) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: []
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName finalize_rpath) <' '>
                                                              )
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName libdir) <' '>
                                                                  ) <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: []
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_append>
                                                              more_env: []
                                                              words: [
                                                                {<func_append>}
                                                                {<finalize_rpath>}
                                                                {
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName libdir)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          spids: [40067 40093]
                                        )
                                      ]
                                      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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-n>}
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
old_archive_from_expsyms_cmds
                                                            )
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <set>
                                              more_env: []
                                              words: [
                                                {<set>}
                                                {<dummy>}
                                                {($ Id.VSub_DollarName library_names)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <shift>
                                              more_env: []
                                              words: [{<shift>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'realname='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'realname='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'realname='>
                                                      name: realname
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_Number 1)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <shift>
                                              more_env: []
                                              words: [{<shift>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'libname='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'libname='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'libname='>
                                                      name: libname
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <eval>
                                                            more_env: []
                                                            words: [
                                                              {<eval>}
                                                              {
                                                                (DQ 
                                                                  (word_part.EscapedLiteral
                                                                    token: <Id.Lit_EscapedChar '\\$'>
                                                                    ch: '$'
                                                                  ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                                  ($ Id.VSub_DollarName libname_spec) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                )
                                                              }
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-n>}
                                                                {(DQ ($ Id.VSub_DollarName dlname))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'soname='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'soname='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'soname='>
                                                              name: soname
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName dlname)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [40319 40330]
                                                )
                                                (IfArm
                                                  keyword: <Id.KW_Elif elif>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.Simple
                                                              blame_tok: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-n>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName soname_spec)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName host)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> <cygwin> 
                                                                  <Id.Lit_Star '*'>
                                                                }
                                                                {<mingw> <Id.Lit_Star '*'>}
                                                                {<Id.Lit_Star '*'> <cegcc> 
                                                                  <Id.Lit_Star '*'>
                                                                }
                                                                {<Id.Lit_Star '*'> <os2> 
                                                                  <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_arith>
                                                              more_env: []
                                                              words: [
                                                                {<func_arith>}
                                                                {($ Id.VSub_DollarName current)}
                                                                {<->}
                                                                {($ Id.VSub_DollarName age)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'major='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'major='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'major='>
                                                                      name: major
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
func_arith_result
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'versuffix='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'versuffix='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'versuffix='>
                                                                      name: versuffix
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {<-> ($ Id.VSub_DollarName major)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [
                                                        {<eval>}
                                                        {<Id.Lit_VarLike 'soname='> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\"'>
                                                            ch: '"'
                                                          ) ($ Id.VSub_DollarName soname_spec) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [40337 40348]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'soname='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'soname='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'soname='>
                                                          name: soname
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_DollarName realname)}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'soroot='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'soroot='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'soroot='>
                                                      name: soroot
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName soname)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <func_basename>
                                              more_env: []
                                              words: [
                                                {<func_basename>}
                                                {(DQ ($ Id.VSub_DollarName soroot))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'soname='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'soname='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'soname='>
                                                      name: soname
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName func_basename_result)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <func_stripname>
                                              more_env: []
                                              words: [
                                                {<func_stripname>}
                                                {(SQ <lib>)}
                                                {(SQ <.dll>)}
                                                {(DQ ($ Id.VSub_DollarName soname))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'newlib='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'newlib='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'newlib='>
                                                      name: newlib
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {<libimp-> 
                                                      ($ Id.VSub_DollarName func_stripname_result) <.a>
                                                    }
                                                )
                                              ]
                                              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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-f>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
output_objdir
                                                                    ) <'/'> ($ Id.VSub_DollarName soname) <-def>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <Id.Lit_Colon ':'>
                                                      more_env: []
                                                      words: [{<Id.Lit_Colon ':'>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [40473 40487]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.Simple
                                                  blame_tok: <func_verbose>
                                                  more_env: []
                                                  words: [
                                                    {<func_verbose>}
                                                    {
                                                      (DQ <'extracting exported symbol list from \''> 
                                                        ($ Id.VSub_DollarName soname) <'\''>
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <func_execute_cmds>
                                                  more_env: []
                                                  words: [
                                                    {<func_execute_cmds>}
                                                    {(DQ ($ Id.VSub_DollarName extract_expsyms_cmds))}
                                                    {(SQ <'exit $?'>)}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-f>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
output_objdir
                                                                    ) <'/'> ($ Id.VSub_DollarName newlib)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.Simple
                                                          blame_tok: <Id.Lit_Colon ':'>
                                                          more_env: []
                                                          words: [{<Id.Lit_Colon ':'>}]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  spids: [40523 40536]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.Simple
                                                  blame_tok: <func_verbose>
                                                  more_env: []
                                                  words: [
                                                    {<func_verbose>}
                                                    {
                                                      (DQ <'generating import library for \''> 
                                                        ($ Id.VSub_DollarName soname) <'\''>
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <func_execute_cmds>
                                                  more_env: []
                                                  words: [
                                                    {<func_execute_cmds>}
                                                    {
                                                      (DQ 
                                                        ($ Id.VSub_DollarName 
old_archive_from_expsyms_cmds
                                                        )
                                                      )
                                                    }
                                                    {(SQ <'exit $?'>)}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'dir='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'dir='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dir='>
                                                      name: dir
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName output_objdir)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'linklib='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'linklib='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'linklib='>
                                                      name: linklib
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName newlib)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [40258 40269]
                                        )
                                      ]
                                      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.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<prog>}
                                                            {<Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName linkmode))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<relink>}
                                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName opt_mode))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DPipe _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'add_shlibpath='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'add_shlibpath='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'add_shlibpath='>
                                                      name: add_shlibpath
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'add_dir='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'add_dir='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'add_dir='>
                                                      name: add_dir
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'add='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'add='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'add='>
                                                      name: add
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'lib_linked='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'lib_linked='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'lib_linked='>
                                                      name: lib_linked
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<yes>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName hardcode_action)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <immediate>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<immediate>} {<unsupported>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  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: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<no>}
                                                                        {<Id.Lit_Equals '='>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
hardcode_direct
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'add='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'add='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'add='>
                                                                      name: add
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {($ Id.VSub_DollarName dir) <'/'> 
                                                                      ($ Id.VSub_DollarName linklib)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName host)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Star '*'> <-> 
                                                                          <Id.Lit_Star '*'> <-sco3.2v5.0.> <Id.Lit_LBracket '['> <024> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 'add_dir='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'add_dir='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'add_dir='
                                                                                >
                                                                              name: add_dir
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {<-L> 
                                                                              ($ Id.VSub_DollarName 
dir
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Star '*'> <-> 
                                                                          <Id.Lit_Star '*'> <-sysv4> <Id.Lit_Star '*'> <uw2> <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 'add_dir='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'add_dir='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'add_dir='
                                                                                >
                                                                              name: add_dir
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {<-L> 
                                                                              ($ Id.VSub_DollarName 
dir
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Star '*'> <-> 
                                                                          <Id.Lit_Star '*'> <-sysv5OpenUNIX> <Id.Lit_Star '*'>
                                                                        }
                                                                        {<Id.Lit_Star '*'> <-> 
                                                                          <Id.Lit_Star '*'> <-sysv5UnixWare7.> <Id.Lit_LBracket '['> <01> <Id.Lit_RBracket ']'> <.> <Id.Lit_LBracket '['> <10> 
                                                                          <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                        }
                                                                        {<Id.Lit_Star '*'> <-> 
                                                                          <Id.Lit_Star '*'> <-unixware7> <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 'add_dir='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'add_dir='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'add_dir='
                                                                                >
                                                                              name: add_dir
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {<-L> 
                                                                              ($ Id.VSub_DollarName 
dir
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Star '*'> <-> 
                                                                          <Id.Lit_Star '*'> <-darwin> <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.If
                                                                      if_kw: <Id.KW_If if>
                                                                      arms: [
                                                                        (IfArm
                                                                          keyword: <Id.KW_If if>
                                                                          cond: 
                                                                            (condition.Shell
                                                                              commands: [
                                                                                (command.Sentence
                                                                                  child: 
                                                                                    (command.Pipeline
                                                                                      children: [
                                                                                        (command.Simple
                                                                                          blame_tok: 
                                                                                            <
'/usr/bin/file'
                                                                                            >
                                                                                          more_env: []
                                                                                          words: [
                                                                                            {
                                                                                              <
'/usr/bin/file'
                                                                                              >
                                                                                            }
                                                                                            {<-L>}
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName add
                                                                                              )
                                                                                            }
                                                                                          ]
                                                                                          redirects: [
                                                                                            (Redir
                                                                                              op: 
                                                                                                <
Id.Redir_Great '2>'
                                                                                                >
                                                                                              loc: 
                                                                                                (redir_loc.Fd
                                                                                                  fd: 
2
                                                                                                )
                                                                                              arg: 
                                                                                                {
                                                                                                  <
'/dev/null'
                                                                                                  >
                                                                                                }
                                                                                            )
                                                                                          ]
                                                                                          do_fork: T
                                                                                        )
                                                                                        (command.Simple
                                                                                          blame_tok: 
                                                                                            <
Id.VSub_DollarName '$GREP'
                                                                                            >
                                                                                          more_env: []
                                                                                          words: [
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName GREP
                                                                                              )
                                                                                            }
                                                                                            {
                                                                                              (DQ 
                                                                                                <
': [^:]* bundle'
                                                                                                >
                                                                                              )
                                                                                            }
                                                                                          ]
                                                                                          redirects: [
                                                                                            (Redir
                                                                                              op: 
                                                                                                <
Id.Redir_Great '>'
                                                                                                >
                                                                                              loc: 
                                                                                                (redir_loc.Fd
                                                                                                  fd: 
1
                                                                                                )
                                                                                              arg: 
                                                                                                {
                                                                                                  <
'/dev/null'
                                                                                                  >
                                                                                                }
                                                                                            )
                                                                                          ]
                                                                                          do_fork: T
                                                                                        )
                                                                                      ]
                                                                                      ops: [
                                                                                        <Id.Op_Pipe 
_
                                                                                        >
                                                                                      ]
                                                                                    )
                                                                                  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: 
                                                                                                <
test
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  <
test
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  (DQ 
                                                                                                    <
X
                                                                                                    > ($ Id.VSub_DollarName dlopenmodule)
                                                                                                  )
                                                                                                }
                                                                                                {
                                                                                                  <
Id.KW_Bang '!'
                                                                                                  > <Id.Lit_Equals '='>
                                                                                                }
                                                                                                {
                                                                                                  (DQ 
                                                                                                    <
X
                                                                                                    > ($ Id.VSub_DollarName lib)
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                          terminator: 
                                                                                            <
Id.Op_Semi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  then_kw: 
                                                                                    <Id.KW_Then then>
                                                                                  action: [
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <
Id.VSub_DollarName '$ECHO'
                                                                                        >
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName ECHO
                                                                                          )
                                                                                        }
                                                                                        {
                                                                                          (DQ 
                                                                                            <
'*** Warning: lib '
                                                                                            > ($ Id.VSub_DollarName linklib) <' is a module, not a shared library'>
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      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
                                                                                                          >
                                                                                                        }
                                                                                                        {
                                                                                                          <
-z
                                                                                                          >
                                                                                                        }
                                                                                                        {
                                                                                                          (DQ 
                                                                                                            ($ 
Id.VSub_DollarName old_library
                                                                                                            )
                                                                                                          )
                                                                                                        }
                                                                                                      ]
                                                                                                      redirects: []
                                                                                                      do_fork: 
T
                                                                                                    )
                                                                                                  terminator: 
                                                                                                    <
Id.Op_Semi _
                                                                                                    >
                                                                                                )
                                                                                              ]
                                                                                            )
                                                                                          then_kw: 
                                                                                            <
Id.KW_Then then
                                                                                            >
                                                                                          action: [
                                                                                            (command.Simple
                                                                                              blame_tok: 
                                                                                                <
echo
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  <
echo
                                                                                                  >
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                            (command.Simple
                                                                                              blame_tok: 
                                                                                                <
echo
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  <
echo
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  (DQ 
                                                                                                    <
'*** And there doesn\'t seem to be a static archive available'
                                                                                                    >
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                            (command.Simple
                                                                                              blame_tok: 
                                                                                                <
echo
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  <
echo
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  (DQ 
                                                                                                    <
'*** The link will probably fail, sorry'
                                                                                                    >
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                          ]
                                                                                          spids: [
40819
40830
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                      else_kw: 
                                                                                        <Id.KW_Else 
else
                                                                                        >
                                                                                      else_action: [
                                                                                        (command.ShAssignment
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'add='
                                                                                            >
                                                                                          pairs: [
                                                                                            (AssignPair
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'add='
                                                                                                >
                                                                                              lhs: 
                                                                                                (sh_lhs_expr.Name
                                                                                                  left: 
                                                                                                    <
Id.Lit_VarLike 'add='
                                                                                                    >
                                                                                                  name: 
add
                                                                                                )
                                                                                              op: 
assign_op.Equal
                                                                                              rhs: 
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName dir
                                                                                                  ) <'/'> ($ Id.VSub_DollarName old_library)
                                                                                                }
                                                                                            )
                                                                                          ]
                                                                                          redirects: []
                                                                                        )
                                                                                      ]
                                                                                      fi_kw: 
                                                                                        <Id.KW_Fi fi>
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  spids: [40789 40807]
                                                                                )
                                                                                (IfArm
                                                                                  keyword: 
                                                                                    <Id.KW_Elif elif>
                                                                                  cond: 
                                                                                    (condition.Shell
                                                                                      commands: [
                                                                                        (command.Sentence
                                                                                          child: 
                                                                                            (command.Simple
                                                                                              blame_tok: 
                                                                                                <
test
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  <
test
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  <
-n
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  (DQ 
                                                                                                    ($ 
Id.VSub_DollarName old_library
                                                                                                    )
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                          terminator: 
                                                                                            <
Id.Op_Semi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  then_kw: 
                                                                                    <Id.KW_Then then>
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'add='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'add='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'add='
                                                                                                >
                                                                                              name: 
add
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName dir
                                                                                              ) <'/'> ($ Id.VSub_DollarName old_library)
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  spids: [40862 40873]
                                                                                )
                                                                              ]
                                                                              else_action: []
                                                                              fi_kw: <Id.KW_Fi fi>
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          spids: [40761 40786]
                                                                        )
                                                                      ]
                                                                      else_action: []
                                                                      fi_kw: <Id.KW_Fi fi>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [40643 40656]
                                                        )
                                                        (IfArm
                                                          keyword: <Id.KW_Elif elif>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (command.Simple
                                                                      blame_tok: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<no>}
                                                                        {<Id.Lit_Equals '='>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
hardcode_minus_L
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName host)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Star '*'> <-> 
                                                                          <Id.Lit_Star '*'> <-sunos> <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'add_shlibpath='
                                                                        >
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'add_shlibpath='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'add_shlibpath='
                                                                                >
                                                                              name: add_shlibpath
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
dir
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'add_dir='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'add_dir='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'add_dir='>
                                                                      name: add_dir
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {<-L> ($ Id.VSub_DollarName dir)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'add='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'add='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'add='>
                                                                      name: add
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {<-l> ($ Id.VSub_DollarName name)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [40891 40904]
                                                        )
                                                        (IfArm
                                                          keyword: <Id.KW_Elif elif>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (command.Simple
                                                                      blame_tok: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<no>}
                                                                        {<Id.Lit_Equals '='>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
hardcode_shlibpath_var
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'add_shlibpath='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 'add_shlibpath='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'add_shlibpath='
                                                                        >
                                                                      name: add_shlibpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_DollarName dir)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'add='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'add='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'add='>
                                                                      name: add
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {<-l> ($ Id.VSub_DollarName name)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [40940 40953]
                                                        )
                                                      ]
                                                      else_kw: <Id.KW_Else else>
                                                      else_action: [
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'lib_linked='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'lib_linked='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: 
                                                                    <Id.Lit_VarLike 'lib_linked='>
                                                                  name: lib_linked
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<no>}
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <relink>
                                                  pattern: (pat.Words words:[{<relink>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (command.AndOr
                                                                      children: [
                                                                        (command.Simple
                                                                          blame_tok: <test>
                                                                          more_env: []
                                                                          words: [
                                                                            {<test>}
                                                                            {<yes>}
                                                                            {<Id.Lit_Equals '='>}
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName hardcode_direct
                                                                                )
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                        (command.Simple
                                                                          blame_tok: <test>
                                                                          more_env: []
                                                                          words: [
                                                                            {<test>}
                                                                            {<no>}
                                                                            {<Id.Lit_Equals '='>}
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName hardcode_direct_absolute
                                                                                )
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                      ]
                                                                      ops: [<Id.Op_DAmp _>]
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'add='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'add='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'add='>
                                                                      name: add
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {($ Id.VSub_DollarName dir) <'/'> 
                                                                      ($ Id.VSub_DollarName linklib)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [40982 41008]
                                                        )
                                                        (IfArm
                                                          keyword: <Id.KW_Elif elif>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (command.Simple
                                                                      blame_tok: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<yes>}
                                                                        {<Id.Lit_Equals '='>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
hardcode_minus_L
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'add_dir='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'add_dir='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'add_dir='>
                                                                      name: add_dir
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {<-L> 
                                                                      ($ Id.VSub_DollarName absdir)
                                                                    }
                                                                )
                                                              ]
                                                              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: <test>
                                                                              more_env: []
                                                                              words: [
                                                                                {<test>}
                                                                                {<-n>}
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName inst_prefix_dir
                                                                                    )
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
libdir
                                                                              )
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <Id.Lit_LBracket '['>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {
                                                                                  <Id.Lit_LBracket 
'['
                                                                                  > (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/'> <Id.Lit_RBracket ']'> 
                                                                                  <Id.Lit_Star '*'>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: 
                                                                                <func_append>
                                                                              more_env: []
                                                                              words: [
                                                                                {<func_append>}
                                                                                {<add_dir>}
                                                                                {
                                                                                  (DQ <' -L'> 
                                                                                    ($ 
Id.VSub_DollarName inst_prefix_dir
                                                                                    ) ($ Id.VSub_DollarName libdir)
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [41042 41053]
                                                                )
                                                              ]
                                                              else_action: []
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'add='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'add='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'add='>
                                                                      name: add
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {<-l> ($ Id.VSub_DollarName name)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [41017 41030]
                                                        )
                                                        (IfArm
                                                          keyword: <Id.KW_Elif elif>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (command.Simple
                                                                      blame_tok: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<yes>}
                                                                        {<Id.Lit_Equals '='>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
hardcode_shlibpath_var
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'add_shlibpath='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 'add_shlibpath='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'add_shlibpath='
                                                                        >
                                                                      name: add_shlibpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_DollarName dir)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'add='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'add='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'add='>
                                                                      name: add
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {<-l> ($ Id.VSub_DollarName name)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [41096 41109]
                                                        )
                                                      ]
                                                      else_kw: <Id.KW_Else else>
                                                      else_action: [
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'lib_linked='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'lib_linked='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: 
                                                                    <Id.Lit_VarLike 'lib_linked='>
                                                                  name: lib_linked
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<no>}
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'lib_linked='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'lib_linked='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'lib_linked='>
                                                              name: lib_linked
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<no>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<yes>}
                                                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName lib_linked)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_fatal_configuration>
                                                      more_env: []
                                                      words: [
                                                        {<func_fatal_configuration>}
                                                        {(DQ <'unsupported hardcode properties'>)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [41147 41161]
                                                )
                                              ]
                                              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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-n>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
add_shlibpath
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {<Id.Lit_Colon ':'> 
                                                              ($ Id.VSub_DollarName compile_shlibpath) <Id.Lit_Colon ':'>
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ <':'> 
                                                                    ($ Id.VSub_DollarName 
add_shlibpath
                                                                    ) <':'>
                                                                  ) <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: []
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_append>
                                                              more_env: []
                                                              words: [
                                                                {<func_append>}
                                                                {<compile_shlibpath>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
add_shlibpath
                                                                    ) <':'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [41175 41186]
                                                )
                                              ]
                                              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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<prog>}
                                                                {<Id.Lit_Equals '='>}
                                                                {(DQ ($ Id.VSub_DollarName linkmode))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {(DQ ($ Id.VSub_DollarName add_dir))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'compile_deplibs='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: 
                                                                <Id.Lit_VarLike 'compile_deplibs='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'compile_deplibs='
                                                                    >
                                                                  name: compile_deplibs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName add_dir) 
                                                                    <' '> ($ Id.VSub_DollarName compile_deplibs)
                                                                  )
                                                                }
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {(DQ ($ Id.VSub_DollarName add))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'compile_deplibs='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: 
                                                                <Id.Lit_VarLike 'compile_deplibs='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'compile_deplibs='
                                                                    >
                                                                  name: compile_deplibs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName add) <' '> 
                                                                    ($ Id.VSub_DollarName 
compile_deplibs
                                                                    )
                                                                  )
                                                                }
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  ]
                                                  spids: [41231 41244]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.AndOr
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-n>}
                                                        {(DQ ($ Id.VSub_DollarName add_dir))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'deplibs='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'deplibs='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'deplibs='>
                                                              name: deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName add_dir) <' '> 
                                                                ($ Id.VSub_DollarName deplibs)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DAmp _>]
                                                )
                                                (command.AndOr
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-n>}
                                                        {(DQ ($ Id.VSub_DollarName add))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'deplibs='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'deplibs='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'deplibs='>
                                                              name: deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName add) <' '> 
                                                                ($ Id.VSub_DollarName deplibs)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DAmp _>]
                                                )
                                                (command.If
                                                  if_kw: <Id.KW_If if>
                                                  arms: [
                                                    (IfArm
                                                      keyword: <Id.KW_If if>
                                                      cond: 
                                                        (condition.Shell
                                                          commands: [
                                                            (command.Sentence
                                                              child: 
                                                                (command.AndOr
                                                                  children: [
                                                                    (command.Simple
                                                                      blame_tok: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<yes>}
                                                                        {<Id.KW_Bang '!'> 
                                                                          <Id.Lit_Equals '='>
                                                                        }
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
hardcode_direct
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<yes>}
                                                                        {<Id.KW_Bang '!'> 
                                                                          <Id.Lit_Equals '='>
                                                                        }
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
hardcode_minus_L
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<yes>}
                                                                        {<Id.Lit_Equals '='>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
hardcode_shlibpath_var
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                        )
                                                      then_kw: <Id.KW_Then then>
                                                      action: [
                                                        (command.Case
                                                          case_kw: <Id.KW_Case case>
                                                          to_match: 
                                                            (case_arg.Word
                                                              w: 
                                                                {<Id.Lit_Colon ':'> 
                                                                  ($ Id.VSub_DollarName 
finalize_shlibpath
                                                                  ) <Id.Lit_Colon ':'>
                                                                }
                                                            )
                                                          arms_start: <Id.KW_In in>
                                                          arms: [
                                                            (CaseArm
                                                              left: <Id.Lit_Star '*'>
                                                              pattern: 
                                                                (pat.Words
                                                                  words: [
                                                                    {<Id.Lit_Star '*'> 
                                                                      (DQ <':'> 
                                                                        ($ Id.VSub_DollarName libdir) <':'>
                                                                      ) <Id.Lit_Star '*'>
                                                                    }
                                                                  ]
                                                                )
                                                              middle: <Id.Right_CasePat _>
                                                              action: []
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                            (CaseArm
                                                              left: <Id.Lit_Star '*'>
                                                              pattern: 
                                                                (pat.Words
                                                                  words: [{<Id.Lit_Star '*'>}]
                                                                )
                                                              middle: <Id.Right_CasePat _>
                                                              action: [
                                                                (command.Simple
                                                                  blame_tok: <func_append>
                                                                  more_env: []
                                                                  words: [
                                                                    {<func_append>}
                                                                    {<finalize_shlibpath>}
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName libdir) <':'>
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                          ]
                                                          arms_end: <Id.KW_Esac esac>
                                                          redirects: []
                                                        )
                                                      ]
                                                      spids: [41322 41363]
                                                    )
                                                  ]
                                                  else_action: []
                                                  fi_kw: <Id.KW_Fi fi>
                                                  redirects: []
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          spids: [40586 40612]
                                        )
                                      ]
                                      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.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<prog>}
                                                            {<Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName linkmode))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<relink>}
                                                            {<Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName opt_mode))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DPipe _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'add_shlibpath='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'add_shlibpath='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'add_shlibpath='>
                                                      name: add_shlibpath
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'add_dir='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'add_dir='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'add_dir='>
                                                      name: add_dir
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'add='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'add='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'add='>
                                                      name: add
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.AndOr
                                                              children: [
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<yes>}
                                                                    {<Id.Lit_Equals '='>}
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
hardcode_direct
                                                                        )
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<no>}
                                                                    {<Id.Lit_Equals '='>}
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
hardcode_direct_absolute
                                                                        )
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              ops: [<Id.Op_DAmp _>]
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'add='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'add='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'add='>
                                                              name: add
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {($ Id.VSub_DollarName libdir) <'/'> 
                                                              ($ Id.VSub_DollarName linklib)
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [41456 41482]
                                                )
                                                (IfArm
                                                  keyword: <Id.KW_Elif elif>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.Simple
                                                              blame_tok: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<yes>}
                                                                {<Id.Lit_Equals '='>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
hardcode_minus_L
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'add_dir='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'add_dir='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'add_dir='>
                                                              name: add_dir
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<-L> ($ Id.VSub_DollarName libdir)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'add='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'add='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'add='>
                                                              name: add
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<-l> ($ Id.VSub_DollarName name)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [41491 41504]
                                                )
                                                (IfArm
                                                  keyword: <Id.KW_Elif elif>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.Simple
                                                              blame_tok: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<yes>}
                                                                {<Id.Lit_Equals '='>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
hardcode_shlibpath_var
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {<Id.Lit_Colon ':'> 
                                                              ($ Id.VSub_DollarName 
finalize_shlibpath
                                                              ) <Id.Lit_Colon ':'>
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ <':'> 
                                                                    ($ Id.VSub_DollarName libdir) <':'>
                                                                  ) <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: []
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_append>
                                                              more_env: []
                                                              words: [
                                                                {<func_append>}
                                                                {<finalize_shlibpath>}
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName libdir) 
                                                                    <':'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'add='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'add='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'add='>
                                                              name: add
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<-l> ($ Id.VSub_DollarName name)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [41517 41530]
                                                )
                                                (IfArm
                                                  keyword: <Id.KW_Elif elif>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.Simple
                                                              blame_tok: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<yes>}
                                                                {<Id.Lit_Equals '='>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
hardcode_automatic
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              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.AndOr
                                                                      children: [
                                                                        (command.Simple
                                                                          blame_tok: <test>
                                                                          more_env: []
                                                                          words: [
                                                                            {<test>}
                                                                            {<-n>}
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName inst_prefix_dir
                                                                                )
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                        (command.Simple
                                                                          blame_tok: <test>
                                                                          more_env: []
                                                                          words: [
                                                                            {<test>}
                                                                            {<-f>}
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName inst_prefix_dir
                                                                                ) ($ Id.VSub_DollarName libdir) <'/'> ($ Id.VSub_DollarName linklib)
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                      ]
                                                                      ops: [<Id.Op_DAmp _>]
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'add='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'add='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'add='>
                                                                      name: add
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
inst_prefix_dir
                                                                      ) ($ Id.VSub_DollarName libdir) <'/'> ($ Id.VSub_DollarName linklib)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [41593 41618]
                                                        )
                                                      ]
                                                      else_kw: <Id.KW_Else else>
                                                      else_action: [
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'add='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'add='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'add='>
                                                                  name: add
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {($ Id.VSub_DollarName libdir) <'/'> 
                                                                  ($ Id.VSub_DollarName linklib)
                                                                }
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [41577 41590]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'add_dir='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'add_dir='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'add_dir='>
                                                          name: add_dir
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {<-L> ($ Id.VSub_DollarName libdir)}
                                                    )
                                                  ]
                                                  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: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<-n>}
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
inst_prefix_dir
                                                                        )
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                        )
                                                      then_kw: <Id.KW_Then then>
                                                      action: [
                                                        (command.Case
                                                          case_kw: <Id.KW_Case case>
                                                          to_match: 
                                                            (case_arg.Word
                                                              w: {($ Id.VSub_DollarName libdir)}
                                                            )
                                                          arms_start: <Id.KW_In in>
                                                          arms: [
                                                            (CaseArm
                                                              left: <Id.Lit_LBracket '['>
                                                              pattern: 
                                                                (pat.Words
                                                                  words: [
                                                                    {<Id.Lit_LBracket '['> 
                                                                      (word_part.EscapedLiteral
                                                                        token: 
                                                                          <Id.Lit_EscapedChar '\\\\'>
                                                                        ch: '\\'
                                                                      ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                    }
                                                                  ]
                                                                )
                                                              middle: <Id.Right_CasePat _>
                                                              action: [
                                                                (command.Simple
                                                                  blame_tok: <func_append>
                                                                  more_env: []
                                                                  words: [
                                                                    {<func_append>}
                                                                    {<add_dir>}
                                                                    {
                                                                      (DQ <' -L'> 
                                                                        ($ Id.VSub_DollarName 
inst_prefix_dir
                                                                        ) ($ Id.VSub_DollarName libdir)
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                          ]
                                                          arms_end: <Id.KW_Esac esac>
                                                          redirects: []
                                                        )
                                                      ]
                                                      spids: [41656 41667]
                                                    )
                                                  ]
                                                  else_action: []
                                                  fi_kw: <Id.KW_Fi fi>
                                                  redirects: []
                                                )
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'add='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'add='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'add='>
                                                          name: add
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {<-l> ($ Id.VSub_DollarName name)}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<prog>}
                                                                {<Id.Lit_Equals '='>}
                                                                {(DQ ($ Id.VSub_DollarName linkmode))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {(DQ ($ Id.VSub_DollarName add_dir))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: 
                                                                <Id.Lit_VarLike 'finalize_deplibs='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'finalize_deplibs='
                                                                    >
                                                                  name: finalize_deplibs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName add_dir) 
                                                                    <' '> ($ Id.VSub_DollarName finalize_deplibs)
                                                                  )
                                                                }
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {(DQ ($ Id.VSub_DollarName add))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: 
                                                                <Id.Lit_VarLike 'finalize_deplibs='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'finalize_deplibs='
                                                                    >
                                                                  name: finalize_deplibs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName add) <' '> 
                                                                    ($ Id.VSub_DollarName 
finalize_deplibs
                                                                    )
                                                                  )
                                                                }
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  ]
                                                  spids: [41714 41727]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.AndOr
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-n>}
                                                        {(DQ ($ Id.VSub_DollarName add_dir))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'deplibs='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'deplibs='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'deplibs='>
                                                              name: deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName add_dir) <' '> 
                                                                ($ Id.VSub_DollarName deplibs)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DAmp _>]
                                                )
                                                (command.AndOr
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-n>}
                                                        {(DQ ($ Id.VSub_DollarName add))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'deplibs='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'deplibs='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'deplibs='>
                                                              name: deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName add) <' '> 
                                                                ($ Id.VSub_DollarName deplibs)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DAmp _>]
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          spids: [41415 41440]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [39776 39815]
                                )
                                (IfArm
                                  keyword: <Id.KW_Elif elif>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<prog>}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName linkmode))}
                                              ]
                                              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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<unsupported>}
                                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                        {(DQ ($ Id.VSub_DollarName hardcode_direct))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-n>}
                                                    {(DQ ($ Id.VSub_DollarName old_library))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'linklib='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'linklib='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'linklib='>
                                                          name: linklib
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_DollarName old_library)}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'compile_deplibs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'compile_deplibs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'compile_deplibs='>
                                                      name: compile_deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName dir) <'/'> 
                                                        ($ Id.VSub_DollarName linklib) <' '> ($ Id.VSub_DollarName compile_deplibs)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'finalize_deplibs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                      name: finalize_deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName dir) <'/'> 
                                                        ($ Id.VSub_DollarName linklib) <' '> ($ Id.VSub_DollarName finalize_deplibs)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [41839 41853]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'compile_deplibs='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'compile_deplibs='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'compile_deplibs='>
                                                  name: compile_deplibs
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ <-l> ($ Id.VSub_DollarName name) <' -L'> 
                                                    ($ Id.VSub_DollarName dir) <' '> ($ Id.VSub_DollarName compile_deplibs)
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'finalize_deplibs='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'finalize_deplibs='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'finalize_deplibs='>
                                                  name: finalize_deplibs
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ <-l> ($ Id.VSub_DollarName name) <' -L'> 
                                                    ($ Id.VSub_DollarName dir) <' '> ($ Id.VSub_DollarName finalize_deplibs)
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [41811 41824]
                                )
                                (IfArm
                                  keyword: <Id.KW_Elif elif>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<yes>}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName build_libtool_libs))}
                                              ]
                                              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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<pass_all>}
                                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
deplibs_check_method
                                                            )
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [{<echo>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$ECHO'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName ECHO)}
                                                {
                                                  (DQ 
                                                    <
'*** Warning: This system cannot link to static lib archive '
                                                    > ($ Id.VSub_DollarName lib) <.>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ 
                                                    <
'*** I have the capability to make that library automatically link in when'
                                                    >
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ 
                                                    <
'*** you link to this library.  But I can only do this if you have a'
                                                    >
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ 
                                                    <
'*** shared version of the library, which you do not appear to have.'
                                                    >
                                                  )
                                                }
                                              ]
                                              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>}
                                                                {<yes>}
                                                                {<Id.Lit_Equals '='>}
                                                                {(DQ ($ Id.VSub_DollarName module))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [
                                                        {<echo>}
                                                        {
                                                          (DQ 
                                                            <
'*** But as you try to build a module library, libtool will still create '
                                                            >
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [
                                                        {<echo>}
                                                        {
                                                          (DQ 
                                                            <
'*** a static module, that should work as long as the dlopening application'
                                                            >
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [
                                                        {<echo>}
                                                        {
                                                          (DQ 
                                                            <
'*** is linked with the -dlopen flag to resolve symbols at runtime.'
                                                            >
                                                          )
                                                        }
                                                      ]
                                                      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>}
                                                                        {<-z>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
global_symbol_pipe
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [{<echo>}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ 
                                                                    <
'*** However, this would only work if libtool was able to extract symbol'
                                                                    >
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ 
                                                                    <
'*** lists from a program, using \'nm\' or equivalent, but libtool could'
                                                                    >
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ 
                                                                    <
'*** not find such a program.  So, this module is probably useless.'
                                                                    >
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ 
                                                                    <
'*** \'nm\' from GNU binutils and a full rebuild may help.'
                                                                    >
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          spids: [42042 42053]
                                                        )
                                                      ]
                                                      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: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<no>}
                                                                        {<Id.Lit_Equals '='>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
build_old_libs
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: 
                                                                <Id.Lit_VarLike 
'build_libtool_libs='
                                                                >
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'build_libtool_libs='
                                                                    >
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'build_libtool_libs='
                                                                        >
                                                                      name: build_libtool_libs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<module>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: 
                                                                <Id.Lit_VarLike 'build_old_libs='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'build_old_libs='
                                                                    >
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'build_old_libs='
                                                                        >
                                                                      name: build_old_libs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<yes>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [42090 42103]
                                                        )
                                                      ]
                                                      else_kw: <Id.KW_Else else>
                                                      else_action: [
                                                        (command.ShAssignment
                                                          left: 
                                                            <Id.Lit_VarLike 'build_libtool_libs='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: 
                                                                <Id.Lit_VarLike 
'build_libtool_libs='
                                                                >
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'build_libtool_libs='
                                                                    >
                                                                  name: build_libtool_libs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<no>}
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [42005 42018]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          spids: [41938 41952]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'deplibs='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'deplibs='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'deplibs='>
                                                  name: deplibs
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName dir) <'/'> 
                                                    ($ Id.VSub_DollarName old_library) <' '> ($ Id.VSub_DollarName deplibs)
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'link_static='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'link_static='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'link_static='>
                                                  name: link_static
                                                )
                                              op: assign_op.Equal
                                              rhs: {<yes>}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [41918 41931]
                                )
                              ]
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<lib>}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName linkmode))}
                                              ]
                                              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.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName dependency_libs)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (BraceGroup
                                                          left: <Id.Lit_LBrace '{'>
                                                          children: [
                                                            (command.Sentence
                                                              child: 
                                                                (command.AndOr
                                                                  children: [
                                                                    (command.Simple
                                                                      blame_tok: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<yes>}
                                                                        {<Id.KW_Bang '!'> 
                                                                          <Id.Lit_Equals '='>
                                                                        }
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
hardcode_into_libs
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<yes>}
                                                                        {<Id.Lit_Equals '='>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
build_old_libs
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<yes>}
                                                                        {<Id.Lit_Equals '='>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
link_static
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  ops: [
                                                                    <Id.Op_DPipe _>
                                                                    <Id.Op_DPipe _>
                                                                  ]
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                          redirects: []
                                                          right: <Id.Lit_RBrace '}'>
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'temp_deplibs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'temp_deplibs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'temp_deplibs='>
                                                      name: temp_deplibs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [libdir]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName dependency_libs)}]
                                                )
                                              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 libdir)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <-R>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<-R> <Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_stripname>
                                                              more_env: []
                                                              words: [
                                                                {<func_stripname>}
                                                                {(SQ <-R>)}
                                                                {(SQ )}
                                                                {(DQ ($ Id.VSub_DollarName libdir))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'temp_xrpath='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 'temp_xrpath='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'temp_xrpath='
                                                                        >
                                                                      name: temp_xrpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
func_stripname_result
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: 
                                                                    {
                                                                      (DQ <' '> 
                                                                        ($ Id.VSub_DollarName xrpath) <' '>
                                                                      )
                                                                    }
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Star '*'> 
                                                                          (DQ <' '> 
                                                                            ($ Id.VSub_DollarName 
temp_xrpath
                                                                            ) <' '>
                                                                          ) <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: []
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <func_append>
                                                                      more_env: []
                                                                      words: [
                                                                        {<func_append>}
                                                                        {<xrpath>}
                                                                        {
                                                                          (DQ <' '> 
                                                                            ($ Id.VSub_DollarName 
temp_xrpath
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_append>
                                                              more_env: []
                                                              words: [
                                                                {<func_append>}
                                                                {<temp_deplibs>}
                                                                {
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName libdir)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'dependency_libs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'dependency_libs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dependency_libs='>
                                                      name: dependency_libs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName temp_deplibs)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [42170 42226]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<newlib_search_path>}
                                        {(DQ <' '> ($ Id.VSub_DollarName absdir))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<no>}
                                            {<Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_DollarName link_static))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'newdependency_libs='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'newdependency_libs='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'newdependency_libs='>
                                                  name: newdependency_libs
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName abs_ladir) <'/'> 
                                                    ($ Id.VSub_DollarName laname) <' '> ($ Id.VSub_DollarName newdependency_libs)
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'tmp_libs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'tmp_libs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'tmp_libs='>
                                              name: tmp_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [deplib]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName dependency_libs)}]
                                        )
                                      semi_tok: <Id.Op_Semi _>
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'newdependency_libs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'newdependency_libs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'newdependency_libs='>
                                                      name: newdependency_libs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                        ($ Id.VSub_DollarName newdependency_libs)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName deplib)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <-L>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<-L> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_stripname>
                                                      more_env: []
                                                      words: [
                                                        {<func_stripname>}
                                                        {(SQ <-L>)}
                                                        {(SQ )}
                                                        {(DQ ($ Id.VSub_DollarName deplib))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <func_resolve_sysroot>
                                                      more_env: []
                                                      words: [
                                                        {<func_resolve_sysroot>}
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
func_stripname_result
                                                            )
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_resolve_sysroot>
                                                      more_env: []
                                                      words: [
                                                        {<func_resolve_sysroot>}
                                                        {(DQ ($ Id.VSub_DollarName deplib))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              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.VSub_DollarName 
'$opt_preserve_dup_deps'
                                                                >
                                                              more_env: []
                                                              words: [
                                                                {
                                                                  ($ Id.VSub_DollarName 
opt_preserve_dup_deps
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName tmp_libs) 
                                                                <' '>
                                                              )
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName 
func_resolve_sysroot_result
                                                                    ) <' '>
                                                                  ) <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_append>
                                                              more_env: []
                                                              words: [
                                                                {<func_append>}
                                                                {<specialdeplibs>}
                                                                {
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName 
func_resolve_sysroot_result
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [42457 42462]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<tmp_libs>}
                                                {
                                                  (DQ <' '> 
                                                    ($ Id.VSub_DollarName func_resolve_sysroot_result)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<no>}
                                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                        {(DQ ($ Id.VSub_DollarName link_all_deplibs))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [deplib]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName dependency_libs)}]
                                                )
                                              semi_tok: <Id.Op_Semi _>
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'path='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'path='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'path='>
                                                              name: path
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName deplib)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <-L>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<-L> <Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'path='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'path='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'path='>
                                                                      name: path
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_DollarName deplib)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'> <.la>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_resolve_sysroot>
                                                              more_env: []
                                                              words: [
                                                                {<func_resolve_sysroot>}
                                                                {(DQ ($ Id.VSub_DollarName deplib))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'deplib='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'deplib='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'deplib='>
                                                                      name: deplib
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
func_resolve_sysroot_result
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <func_dirname>
                                                              more_env: []
                                                              words: [
                                                                {<func_dirname>}
                                                                {(DQ ($ Id.VSub_DollarName deplib))}
                                                                {(DQ )}
                                                                {(DQ <.>)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'dir='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'dir='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'dir='>
                                                                      name: dir
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
func_dirname_result
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName dir)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_LBracket '['>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_LBracket '['> 
                                                                          (word_part.EscapedLiteral
                                                                            token: 
                                                                              <Id.Lit_EscapedChar 
'\\\\'
                                                                              >
                                                                            ch: '\\'
                                                                          ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                        }
                                                                        {<Id.Lit_LBracket '['> 
                                                                          <A-Za-z> <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> 
                                                                          (word_part.EscapedLiteral
                                                                            token: 
                                                                              <Id.Lit_EscapedChar 
'\\\\'
                                                                              >
                                                                            ch: '\\'
                                                                          ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 'absdir='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'absdir='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'absdir='
                                                                                >
                                                                              name: absdir
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
dir
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 'absdir='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'absdir='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'absdir='
                                                                                >
                                                                              name: absdir
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (CommandSub
                                                                                left_token: 
                                                                                  <Id.Left_Backtick 
'`'
                                                                                  >
                                                                                child: 
                                                                                  (command.AndOr
                                                                                    children: [
                                                                                      (command.Simple
                                                                                        blame_tok: 
                                                                                          <cd>
                                                                                        more_env: []
                                                                                        words: [
                                                                                          {<cd>}
                                                                                          {
                                                                                            (DQ 
                                                                                              ($ 
Id.VSub_DollarName dir
                                                                                              )
                                                                                            )
                                                                                          }
                                                                                        ]
                                                                                        redirects: []
                                                                                        do_fork: T
                                                                                      )
                                                                                      (command.Simple
                                                                                        blame_tok: 
                                                                                          <pwd>
                                                                                        more_env: []
                                                                                        words: [
                                                                                          {<pwd>}
                                                                                        ]
                                                                                        redirects: []
                                                                                        do_fork: T
                                                                                      )
                                                                                    ]
                                                                                    ops: [
                                                                                      <Id.Op_DAmp _>
                                                                                    ]
                                                                                  )
                                                                                right: 
                                                                                  <
Id.Backtick_Right '`'
                                                                                  >
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      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: 
                                                                                        <test>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<test>}
                                                                                        {<-z>}
                                                                                        {
                                                                                          (DQ 
                                                                                            ($ 
Id.VSub_DollarName absdir
                                                                                            )
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                  terminator: 
                                                                                    <Id.Op_Semi _>
                                                                                )
                                                                              ]
                                                                            )
                                                                          then_kw: <Id.KW_Then then>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: 
                                                                                <func_warning>
                                                                              more_env: []
                                                                              words: [
                                                                                {<func_warning>}
                                                                                {
                                                                                  (DQ 
                                                                                    <
'cannot determine absolute directory name of \''
                                                                                    > ($ Id.VSub_DollarName dir) <'\''>
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'absdir='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'absdir='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'absdir='
                                                                                        >
                                                                                      name: absdir
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName dir
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          spids: [42660 42671]
                                                                        )
                                                                      ]
                                                                      else_action: []
                                                                      fi_kw: <Id.KW_Fi fi>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              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.VSub_DollarName 
'$GREP'
                                                                                >
                                                                              more_env: []
                                                                              words: [
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName GREP
                                                                                  )
                                                                                }
                                                                                {
                                                                                  (DQ 
                                                                                    <
'^installed=no'
                                                                                    >
                                                                                  )
                                                                                }
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName deplib
                                                                                  )
                                                                                }
                                                                              ]
                                                                              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.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
host
                                                                              )
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'> 
                                                                                  <-> <Id.Lit_Star '*'> <-darwin> <Id.Lit_Star '*'>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'depdepl='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'depdepl='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'depdepl='
                                                                                        >
                                                                                      name: depdepl
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: (rhs_word__Empty)
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <eval>
                                                                              more_env: []
                                                                              words: [
                                                                                {<eval>}
                                                                                {
                                                                                  <Id.Lit_VarLike 
'deplibrary_names='
                                                                                  > 
                                                                                  (CommandSub
                                                                                    left_token: 
                                                                                      <
Id.Left_Backtick '`'
                                                                                      >
                                                                                    child: 
                                                                                      (command.Simple
                                                                                        blame_tok: 
                                                                                          <
Id.VSub_DollarName '$SED'
                                                                                          >
                                                                                        more_env: []
                                                                                        words: [
                                                                                          {
                                                                                            ($ 
Id.VSub_DollarName SED
                                                                                            )
                                                                                          }
                                                                                          {<-n>}
                                                                                          {<-e>}
                                                                                          {
                                                                                            (SQ 
                                                                                              <
's/^library_names=\\(.*\\)$/\\1/p'
                                                                                              >
                                                                                            )
                                                                                          }
                                                                                          {
                                                                                            ($ 
Id.VSub_DollarName deplib
                                                                                            )
                                                                                          }
                                                                                        ]
                                                                                        redirects: []
                                                                                        do_fork: T
                                                                                      )
                                                                                    right: 
                                                                                      <
Id.Backtick_Right '`'
                                                                                      >
                                                                                  )
                                                                                }
                                                                              ]
                                                                              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
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  <
-n
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  (DQ 
                                                                                                    ($ 
Id.VSub_DollarName deplibrary_names
                                                                                                    )
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                          terminator: 
                                                                                            <
Id.Op_Semi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  then_kw: 
                                                                                    <Id.KW_Then then>
                                                                                  action: [
                                                                                    (command.ForEach
                                                                                      keyword: 
                                                                                        <Id.KW_For 
for
                                                                                        >
                                                                                      iter_names: [
tmp
                                                                                      ]
                                                                                      iterable: 
                                                                                        (for_iter.Words
                                                                                          words: [
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName deplibrary_names
                                                                                              )
                                                                                            }
                                                                                          ]
                                                                                        )
                                                                                      semi_tok: 
                                                                                        <Id.Op_Semi 
_
                                                                                        >
                                                                                      body: 
                                                                                        (command.DoGroup
                                                                                          left: 
                                                                                            <
Id.KW_Do do
                                                                                            >
                                                                                          children: [
                                                                                            (command.ShAssignment
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'depdepl='
                                                                                                >
                                                                                              pairs: [
                                                                                                (AssignPair
                                                                                                  left: 
                                                                                                    <
Id.Lit_VarLike 'depdepl='
                                                                                                    >
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'depdepl='
                                                                                                        >
                                                                                                      name: 
depdepl
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      ($ 
Id.VSub_DollarName tmp
                                                                                                      )
                                                                                                    }
                                                                                                )
                                                                                              ]
                                                                                              redirects: []
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.KW_Done done
                                                                                            >
                                                                                        )
                                                                                      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: 
                                                                                                        <
test
                                                                                                        >
                                                                                                      more_env: []
                                                                                                      words: [
                                                                                                        {
                                                                                                          <
test
                                                                                                          >
                                                                                                        }
                                                                                                        {
                                                                                                          <
-f
                                                                                                          >
                                                                                                        }
                                                                                                        {
                                                                                                          (DQ 
                                                                                                            ($ 
Id.VSub_DollarName absdir
                                                                                                            ) <'/'> ($ Id.VSub_DollarName objdir) <'/'> ($ Id.VSub_DollarName depdepl)
                                                                                                          )
                                                                                                        }
                                                                                                      ]
                                                                                                      redirects: []
                                                                                                      do_fork: 
T
                                                                                                    )
                                                                                                  terminator: 
                                                                                                    <
Id.Op_Semi _
                                                                                                    >
                                                                                                )
                                                                                              ]
                                                                                            )
                                                                                          then_kw: 
                                                                                            <
Id.KW_Then then
                                                                                            >
                                                                                          action: [
                                                                                            (command.ShAssignment
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'depdepl='
                                                                                                >
                                                                                              pairs: [
                                                                                                (AssignPair
                                                                                                  left: 
                                                                                                    <
Id.Lit_VarLike 'depdepl='
                                                                                                    >
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'depdepl='
                                                                                                        >
                                                                                                      name: 
depdepl
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      ($ 
Id.VSub_DollarName absdir
                                                                                                      ) <'/'> ($ Id.VSub_DollarName objdir) <'/'> ($ Id.VSub_DollarName depdepl)
                                                                                                    }
                                                                                                )
                                                                                              ]
                                                                                              redirects: []
                                                                                            )
                                                                                            (command.ShAssignment
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'darwin_install_name='
                                                                                                >
                                                                                              pairs: [
                                                                                                (AssignPair
                                                                                                  left: 
                                                                                                    <
Id.Lit_VarLike 'darwin_install_name='
                                                                                                    >
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'darwin_install_name='
                                                                                                        >
                                                                                                      name: 
darwin_install_name
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      (CommandSub
                                                                                                        left_token: 
                                                                                                          <
Id.Left_Backtick '`'
                                                                                                          >
                                                                                                        child: 
                                                                                                          (command.Pipeline
                                                                                                            children: [
                                                                                                              (command.Simple
                                                                                                                blame_tok: 
                                                                                                                  <
Id.VSub_DollarName '$OTOOL'
                                                                                                                  >
                                                                                                                more_env: []
                                                                                                                words: [
                                                                                                                  {
                                                                                                                    ($ 
Id.VSub_DollarName OTOOL
                                                                                                                    )
                                                                                                                  }
                                                                                                                  {
                                                                                                                    <
-L
                                                                                                                    >
                                                                                                                  }
                                                                                                                  {
                                                                                                                    ($ 
Id.VSub_DollarName depdepl
                                                                                                                    )
                                                                                                                  }
                                                                                                                ]
                                                                                                                redirects: []
                                                                                                                do_fork: 
T
                                                                                                              )
                                                                                                              (command.Simple
                                                                                                                blame_tok: 
                                                                                                                  <
awk
                                                                                                                  >
                                                                                                                more_env: []
                                                                                                                words: [
                                                                                                                  {
                                                                                                                    <
awk
                                                                                                                    >
                                                                                                                  }
                                                                                                                  {
                                                                                                                    (SQ 
                                                                                                                      <
'{if (NR == 2) {print $1;exit}}'
                                                                                                                      >
                                                                                                                    )
                                                                                                                  }
                                                                                                                ]
                                                                                                                redirects: []
                                                                                                                do_fork: 
T
                                                                                                              )
                                                                                                            ]
                                                                                                            ops: [
                                                                                                              <
Id.Op_Pipe _
                                                                                                              >
                                                                                                            ]
                                                                                                          )
                                                                                                        right: 
                                                                                                          <
Id.Backtick_Right '`'
                                                                                                          >
                                                                                                      )
                                                                                                    }
                                                                                                )
                                                                                              ]
                                                                                              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: 
                                                                                                                <
test
                                                                                                                >
                                                                                                              more_env: []
                                                                                                              words: [
                                                                                                                {
                                                                                                                  <
test
                                                                                                                  >
                                                                                                                }
                                                                                                                {
                                                                                                                  <
-z
                                                                                                                  >
                                                                                                                }
                                                                                                                {
                                                                                                                  (DQ 
                                                                                                                    ($ 
Id.VSub_DollarName darwin_install_name
                                                                                                                    )
                                                                                                                  )
                                                                                                                }
                                                                                                              ]
                                                                                                              redirects: []
                                                                                                              do_fork: 
T
                                                                                                            )
                                                                                                          terminator: 
                                                                                                            <
Id.Op_Semi _
                                                                                                            >
                                                                                                        )
                                                                                                      ]
                                                                                                    )
                                                                                                  then_kw: 
                                                                                                    <
Id.KW_Then then
                                                                                                    >
                                                                                                  action: [
                                                                                                    (command.ShAssignment
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'darwin_install_name='
                                                                                                        >
                                                                                                      pairs: [
                                                                                                        (AssignPair
                                                                                                          left: 
                                                                                                            <
Id.Lit_VarLike 'darwin_install_name='
                                                                                                            >
                                                                                                          lhs: 
                                                                                                            (sh_lhs_expr.Name
                                                                                                              left: 
                                                                                                                <
Id.Lit_VarLike 'darwin_install_name='
                                                                                                                >
                                                                                                              name: 
darwin_install_name
                                                                                                            )
                                                                                                          op: 
assign_op.Equal
                                                                                                          rhs: 
                                                                                                            {
                                                                                                              (CommandSub
                                                                                                                left_token: 
                                                                                                                  <
Id.Left_Backtick '`'
                                                                                                                  >
                                                                                                                child: 
                                                                                                                  (command.Pipeline
                                                                                                                    children: [
                                                                                                                      (command.Simple
                                                                                                                        blame_tok: 
                                                                                                                          <
Id.VSub_DollarName '$OTOOL64'
                                                                                                                          >
                                                                                                                        more_env: []
                                                                                                                        words: [
                                                                                                                          {
                                                                                                                            ($ 
Id.VSub_DollarName OTOOL64
                                                                                                                            )
                                                                                                                          }
                                                                                                                          {
                                                                                                                            <
-L
                                                                                                                            >
                                                                                                                          }
                                                                                                                          {
                                                                                                                            ($ 
Id.VSub_DollarName depdepl
                                                                                                                            )
                                                                                                                          }
                                                                                                                        ]
                                                                                                                        redirects: []
                                                                                                                        do_fork: 
T
                                                                                                                      )
                                                                                                                      (command.Simple
                                                                                                                        blame_tok: 
                                                                                                                          <
awk
                                                                                                                          >
                                                                                                                        more_env: []
                                                                                                                        words: [
                                                                                                                          {
                                                                                                                            <
awk
                                                                                                                            >
                                                                                                                          }
                                                                                                                          {
                                                                                                                            (SQ 
                                                                                                                              <
'{if (NR == 2) {print $1;exit}}'
                                                                                                                              >
                                                                                                                            )
                                                                                                                          }
                                                                                                                        ]
                                                                                                                        redirects: []
                                                                                                                        do_fork: 
T
                                                                                                                      )
                                                                                                                    ]
                                                                                                                    ops: [
                                                                                                                      <
Id.Op_Pipe _
                                                                                                                      >
                                                                                                                    ]
                                                                                                                  )
                                                                                                                right: 
                                                                                                                  <
Id.Backtick_Right '`'
                                                                                                                  >
                                                                                                              )
                                                                                                            }
                                                                                                        )
                                                                                                      ]
                                                                                                      redirects: []
                                                                                                    )
                                                                                                  ]
                                                                                                  spids: [
42837
42848
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                              else_action: []
                                                                                              fi_kw: 
                                                                                                <
Id.KW_Fi fi
                                                                                                >
                                                                                              redirects: []
                                                                                            )
                                                                                            (command.Simple
                                                                                              blame_tok: 
                                                                                                <
func_append
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  <
func_append
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  <
compiler_flags
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  (DQ 
                                                                                                    <
' '
                                                                                                    > ($ Id.VSub_DollarName wl) <'-dylib_file '> ($ Id.VSub_DollarName wl) 
                                                                                                    ($ 
Id.VSub_DollarName darwin_install_name
                                                                                                    ) <':'> ($ Id.VSub_DollarName depdepl)
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                            (command.Simple
                                                                                              blame_tok: 
                                                                                                <
func_append
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  <
func_append
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  <
linker_flags
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  (DQ 
                                                                                                    <
' -dylib_file '
                                                                                                    > ($ Id.VSub_DollarName darwin_install_name) <':'> ($ Id.VSub_DollarName depdepl)
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                            (command.ShAssignment
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'path='
                                                                                                >
                                                                                              pairs: [
                                                                                                (AssignPair
                                                                                                  left: 
                                                                                                    <
Id.Lit_VarLike 'path='
                                                                                                    >
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'path='
                                                                                                        >
                                                                                                      name: 
path
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: (rhs_word__Empty)
                                                                                                )
                                                                                              ]
                                                                                              redirects: []
                                                                                            )
                                                                                          ]
                                                                                          spids: [
42791
42806
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                      else_action: []
                                                                                      fi_kw: 
                                                                                        <Id.KW_Fi fi>
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  spids: [42758 42769]
                                                                                )
                                                                              ]
                                                                              else_action: []
                                                                              fi_kw: <Id.KW_Fi fi>
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'>}
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'path='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'path='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'path='
                                                                                        >
                                                                                      name: path
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {<-L> 
                                                                                      ($ 
Id.VSub_DollarName absdir
                                                                                      ) <'/'> ($ Id.VSub_DollarName objdir)
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [42696 42711]
                                                                )
                                                              ]
                                                              else_kw: <Id.KW_Else else>
                                                              else_action: [
                                                                (command.Simple
                                                                  blame_tok: <eval>
                                                                  more_env: []
                                                                  words: [
                                                                    {<eval>}
                                                                    {<Id.Lit_VarLike 'libdir='> 
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.Simple
                                                                            blame_tok: 
                                                                              <Id.VSub_DollarName 
'$SED'
                                                                              >
                                                                            more_env: []
                                                                            words: [
                                                                              {
                                                                                ($ 
Id.VSub_DollarName SED
                                                                                )
                                                                              }
                                                                              {<-n>}
                                                                              {<-e>}
                                                                              {
                                                                                (SQ 
                                                                                  <
's/^libdir=\\(.*\\)$/\\1/p'
                                                                                  >
                                                                                )
                                                                              }
                                                                              {
                                                                                ($ 
Id.VSub_DollarName deplib
                                                                                )
                                                                              }
                                                                            ]
                                                                            redirects: []
                                                                            do_fork: T
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.AndOr
                                                                  children: [
                                                                    (command.Simple
                                                                      blame_tok: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<-z>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
libdir
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <func_fatal_error>
                                                                      more_env: []
                                                                      words: [
                                                                        {<func_fatal_error>}
                                                                        {
                                                                          (DQ <'\''> 
                                                                            ($ Id.VSub_DollarName 
deplib
                                                                            ) <'\' is not a valid libtool archive'>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  ops: [<Id.Op_DAmp _>]
                                                                )
                                                                (command.AndOr
                                                                  children: [
                                                                    (command.Simple
                                                                      blame_tok: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
absdir
                                                                            )
                                                                          )
                                                                        }
                                                                        {<Id.KW_Bang '!'> 
                                                                          <Id.Lit_Equals '='>
                                                                        }
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
libdir
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <func_warning>
                                                                      more_env: []
                                                                      words: [
                                                                        {<func_warning>}
                                                                        {
                                                                          (DQ <'\''> 
                                                                            ($ Id.VSub_DollarName 
deplib
                                                                            ) <'\' seems to be moved'>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  ops: [<Id.Op_DAmp _>]
                                                                )
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'path='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: <Id.Lit_VarLike 'path='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 'path='>
                                                                          name: path
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {<-L> 
                                                                          ($ Id.VSub_DollarName 
absdir
                                                                          )
                                                                        }
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                              ]
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {
                                                              (DQ <' '> ($ Id.VSub_DollarName deplibs) 
                                                                <' '>
                                                              )
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName path) <' '>
                                                                  ) <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: []
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'deplibs='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'deplibs='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'deplibs='>
                                                                      name: deplibs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName path) 
                                                                        <' '> ($ Id.VSub_DollarName deplibs)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                          ]
                                          spids: [42517 42531]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [42154 42167]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      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: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<link>}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName pass))}
                                      ]
                                      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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<prog>}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName linkmode))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'compile_deplibs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'compile_deplibs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'compile_deplibs='>
                                              name: compile_deplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName new_inherited_linker_flags) 
                                                <' '> ($ Id.VSub_DollarName compile_deplibs)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'finalize_deplibs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'finalize_deplibs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'finalize_deplibs='>
                                              name: finalize_deplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName new_inherited_linker_flags) 
                                                <' '> ($ Id.VSub_DollarName finalize_deplibs)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [43097 43110]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'compiler_flags='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'compiler_flags='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'compiler_flags='>
                                          name: compiler_flags
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {(DQ ($ Id.VSub_DollarName compiler_flags) <' '>) 
                                          (CommandSub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Pipeline
                                                children: [
                                                  (command.Simple
                                                    blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                    more_env: []
                                                    words: [
                                                      {($ Id.VSub_DollarName ECHO)}
                                                      {
                                                        (DQ <' '> 
                                                          ($ Id.VSub_DollarName 
new_inherited_linker_flags
                                                          )
                                                        )
                                                      }
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                  (command.Simple
                                                    blame_tok: <Id.VSub_DollarName '$SED'>
                                                    more_env: []
                                                    words: [
                                                      {($ Id.VSub_DollarName SED)}
                                                      {
                                                        (SQ 
                                                          <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                          >
                                                        )
                                                      }
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                ]
                                                ops: [<Id.Op_Pipe _>]
                                              )
                                            right: <Id.Backtick_Right '`'>
                                          )
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          spids: [43081 43094]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'dependency_libs='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'dependency_libs='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'dependency_libs='>
                              name: dependency_libs
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName newdependency_libs)}
                        )
                      ]
                      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: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<dlpreopen>}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName pass))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [deplib]
                              iterable: 
                                (for_iter.Words
                                  words: [{($ Id.VSub_DollarName save_deplibs)}]
                                )
                              semi_tok: <Id.Op_Semi _>
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'deplibs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'deplibs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'deplibs='>
                                              name: deplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                ($ Id.VSub_DollarName deplibs)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          spids: [43173 43186]
                        )
                      ]
                      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: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<dlopen>}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName pass))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<conv>}
                                    {<Id.Lit_Equals '='>}
                                    {(DQ ($ Id.VSub_DollarName pass))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (BraceGroup
                                  left: <Id.Lit_LBrace '{'>
                                  children: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'lib_search_path='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'lib_search_path='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'lib_search_path='>
                                              name: lib_search_path
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [dir]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName newlib_search_path)}]
                                        )
                                      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: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName lib_search_path) <' '>)
                                                    }
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> ($ Id.VSub_DollarName dir) <' '>) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: []
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<lib_search_path>}
                                                        {(DQ <' '> ($ Id.VSub_DollarName dir))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'newlib_search_path='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'newlib_search_path='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'newlib_search_path='>
                                              name: newlib_search_path
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  redirects: []
                                  right: <Id.Lit_RBrace '}'>
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                            (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>}
                                                {<prog> <Id.Lit_Comma ','> <link>}
                                                {<Id.Lit_Equals '='>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName linkmode) <','> 
                                                    ($ Id.VSub_DollarName pass)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'vars='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'vars='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'vars='>
                                              name: vars
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ <'compile_deplibs finalize_deplibs'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [43320 43337]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'vars='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'vars='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'vars='> name:vars)
                                      op: assign_op.Equal
                                      rhs: {<deplibs>}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [var]
                              iterable: 
                                (for_iter.Words
                                  words: [{($ Id.VSub_DollarName vars)} {<dependency_libs>}]
                                )
                              semi_tok: <Id.Op_Semi _>
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {<Id.Lit_VarLike 'tmp_libs='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                            ch: '"'
                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') ($ Id.VSub_DollarName var) 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                            ch: '"'
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'new_libs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'new_libs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'new_libs='>
                                              name: new_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [deplib]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName tmp_libs)}]
                                        )
                                      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 deplib)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <-L>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<-L> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'new_libs='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'new_libs='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'new_libs='>
                                                              name: new_libs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName deplib) <' '> 
                                                                ($ Id.VSub_DollarName new_libs)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <-R>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<-R> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: []
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName specialdeplibs) <' '>
                                                              )
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName deplib) <' '>
                                                                  ) <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'new_libs='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'new_libs='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'new_libs='>
                                                                      name: new_libs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName deplib) <' '> ($ Id.VSub_DollarName new_libs)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: 
                                                                    {
                                                                      (DQ <' '> 
                                                                        ($ Id.VSub_DollarName 
new_libs
                                                                        ) <' '>
                                                                      )
                                                                    }
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Star '*'> 
                                                                          (DQ <' '> 
                                                                            ($ Id.VSub_DollarName 
deplib
                                                                            ) <' '>
                                                                          ) <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: []
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{<Id.Lit_Star '*'>}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 'new_libs='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'new_libs='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'new_libs='
                                                                                >
                                                                              name: new_libs
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName deplib
                                                                                ) <' '> ($ Id.VSub_DollarName new_libs)
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'tmp_libs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'tmp_libs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'tmp_libs='>
                                              name: tmp_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [deplib]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName new_libs)}]
                                        )
                                      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 deplib)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <-L>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<-L> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName tmp_libs) <' '>
                                                              )
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName deplib) <' '>
                                                                  ) <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: []
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_append>
                                                              more_env: []
                                                              words: [
                                                                {<func_append>}
                                                                {<tmp_libs>}
                                                                {
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName deplib)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<tmp_libs>}
                                                        {(DQ <' '> ($ Id.VSub_DollarName deplib))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {($ Id.VSub_DollarName var) <Id.Lit_Equals '='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                            ch: '"'
                                          ) ($ Id.VSub_DollarName tmp_libs) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          spids: [43219 43233]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<CXX>}
                            {<Id.Lit_Equals '='>}
                            {(DQ ($ Id.VSub_DollarName tagname))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName host_os)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <linux>
                                  pattern: (pat.Words words:[{<linux> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$CC'>
                                                        more_env: []
                                                        words: [{($ Id.VSub_DollarName CC)} {<-V>}]
                                                        redirects: [
                                                          (Redir
                                                            op: <Id.Redir_GreatAnd '2>&'>
                                                            loc: (redir_loc.Fd fd:2)
                                                            arg: {<1>}
                                                          )
                                                        ]
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <sed>
                                                        more_env: []
                                                        words: [{<sed>} {<5q>}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <Sun> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\ '>
                                                    ch: ' '
                                                  ) <C> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_suncc_cstd_abi>
                                              more_env: []
                                              words: [{<func_suncc_cstd_abi>}]
                                              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>}
                                                                {<no>}
                                                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
suncc_use_cstd_abi
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<postdeps>}
                                                        {(SQ <' -library=Cstd -library=Crun'>)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [43777 43791]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <solaris>
                                  pattern: (pat.Words words:[{<solaris> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_cc_basename>
                                      more_env: []
                                      words: [{<func_cc_basename>} {(DQ ($ Id.VSub_DollarName CC))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {($ Id.VSub_DollarName func_cc_basename_result)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <CC>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<CC> <Id.Lit_Star '*'>}
                                                {<sunCC> <Id.Lit_Star '*'>}
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_suncc_cstd_abi>
                                              more_env: []
                                              words: [{<func_suncc_cstd_abi>}]
                                              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>}
                                                                {<no>}
                                                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
suncc_use_cstd_abi
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<postdeps>}
                                                        {(SQ <' -library=Cstd -library=Crun'>)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [43849 43863]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'tmp_libs='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'tmp_libs='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tmp_libs='> name:tmp_libs)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName dependency_libs)}])
                      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: 
                                    {
                                      (DQ <' '> ($ Id.VSub_DollarName predeps) <' '> 
                                        ($ Id.VSub_DollarName postdeps) <' '> ($ Id.VSub_DollarName compiler_lib_search_path) <' '>
                                      )
                                    }
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName i) <' '>) 
                                          <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'i='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'i='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              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: <test>
                                              more_env: []
                                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName i))}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<tmp_libs>}
                                        {(DQ <' '> ($ Id.VSub_DollarName i))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [43951 43962]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'dependency_libs='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'dependency_libs='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'dependency_libs='>
                              name: dependency_libs
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName tmp_libs)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              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: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<prog>}
                                {<Id.Lit_Equals '='>}
                                {(DQ ($ Id.VSub_DollarName linkmode))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'dlfiles='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'dlfiles='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dlfiles='> name:dlfiles)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName newdlfiles)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [43991 44004]
                )
              ]
              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.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<prog>}
                                    {<Id.Lit_Equals '='>}
                                    {(DQ ($ Id.VSub_DollarName linkmode))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<lib>}
                                    {<Id.Lit_Equals '='>}
                                    {(DQ ($ Id.VSub_DollarName linkmode))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'dlprefiles='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'dlprefiles='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dlprefiles='> name:dlprefiles)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName newdlprefiles)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [44014 44039]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName linkmode)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <oldlib>
                  pattern: (pat.Words words:[{<oldlib>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-n>}
                                            {
                                              (DQ ($ Id.VSub_DollarName dlfiles) 
                                                ($ Id.VSub_DollarName dlprefiles)
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<no>}
                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_DollarName dlself))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <func_warning>
                              more_env: []
                              words: [{<func_warning>} {(DQ <'\'-dlopen\' is ignored for archives'>)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [44061 44086]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName deplibs))})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\ '>
                                    ch: ' '
                                  ) <-l> <Id.Lit_Star '*'>
                                }
                                {<Id.Lit_Star '*'> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\ '>
                                    ch: ' '
                                  ) <-L> <Id.Lit_Star '*'>
                                }
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_warning>
                              more_env: []
                              words: [
                                {<func_warning>}
                                {(DQ <'\'-l\' and \'-L\' are ignored for archives'>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName rpath))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <func_warning>
                          more_env: []
                          words: [{<func_warning>} {(DQ <'\'-rpath\' is ignored for archives'>)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName xrpath))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <func_warning>
                          more_env: []
                          words: [{<func_warning>} {(DQ <'\'-R\' is ignored for archives'>)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName vinfo))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <func_warning>
                          more_env: []
                          words: [
                            {<func_warning>}
                            {(DQ <'\'-version-info/-version-number\' is ignored for archives'>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName release))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <func_warning>
                          more_env: []
                          words: [{<func_warning>} {(DQ <'\'-release\' is ignored for archives'>)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<-n>}
                            {
                              (DQ ($ Id.VSub_DollarName export_symbols) 
                                ($ Id.VSub_DollarName export_symbols_regex)
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <func_warning>
                          more_env: []
                          words: [
                            {<func_warning>}
                            {(DQ <'\'-export-symbols\' is ignored for archives'>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'build_libtool_libs='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'build_libtool_libs='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'build_libtool_libs='>
                              name: build_libtool_libs
                            )
                          op: assign_op.Equal
                          rhs: {<no>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'oldlibs='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'oldlibs='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldlibs='> name:oldlibs)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName output)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_append>
                      more_env: []
                      words: [{<func_append>} {<objs>} {(DQ ($ Id.VSub_DollarName old_deplibs))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <lib>
                  pattern: (pat.Words words:[{<lib>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName outputname)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <lib>
                          pattern: (pat.Words words:[{<lib> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_stripname>
                              more_env: []
                              words: [
                                {<func_stripname>}
                                {(SQ <lib>)}
                                {(SQ <.la>)}
                                {(DQ ($ Id.VSub_DollarName outputname))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'name='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'name='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name='> name:name)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {<Id.Lit_VarLike 'shared_ext='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                    ch: '"'
                                  ) ($ Id.VSub_DollarName shrext_cmds) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {<Id.Lit_VarLike 'libname='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                    ch: '"'
                                  ) ($ Id.VSub_DollarName libname_spec) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                }
                              ]
                              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: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<no>}
                                    {<Id.Lit_Equals '='>}
                                    {(DQ ($ Id.VSub_DollarName module))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_fatal_help>
                                  more_env: []
                                  words: [
                                    {<func_fatal_help>}
                                    {
                                      (DQ <'libtool library \''> ($ Id.VSub_DollarName output) 
                                        <'\' must begin with \'lib\''>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                            (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>}
                                                {<no>}
                                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName need_lib_prefix))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_stripname>
                                      more_env: []
                                      words: [
                                        {<func_stripname>}
                                        {(SQ )}
                                        {(SQ <.la>)}
                                        {(DQ ($ Id.VSub_DollarName outputname))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'name='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'name='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'name='>
                                              name: name
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {<Id.Lit_VarLike 'shared_ext='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                            ch: '"'
                                          ) ($ Id.VSub_DollarName shrext_cmds) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {<Id.Lit_VarLike 'libname='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                            ch: '"'
                                          ) ($ Id.VSub_DollarName libname_spec) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [44349 44363]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <func_stripname>
                                  more_env: []
                                  words: [
                                    {<func_stripname>}
                                    {(SQ )}
                                    {(SQ <.la>)}
                                    {(DQ ($ Id.VSub_DollarName outputname))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'libname='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'libname='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'libname='>
                                          name: libname
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      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: <test>
                                      more_env: []
                                      words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName objs))}]
                                      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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<pass_all>}
                                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName deplibs_check_method))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_fatal_error>
                                      more_env: []
                                      words: [
                                        {<func_fatal_error>}
                                        {
                                          (DQ <'cannot build libtool library \''> 
                                            ($ Id.VSub_DollarName output) <'\' from non-libtool objects on this host:'> ($ Id.VSub_DollarName objs)
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [44449 44463]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [{<echo>}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$ECHO'>
                                  more_env: []
                                  words: [
                                    {($ Id.VSub_DollarName ECHO)}
                                    {
                                      (DQ <'*** Warning: Linking the shared library '> 
                                        ($ Id.VSub_DollarName output) <' against the non-libtool'>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$ECHO'>
                                  more_env: []
                                  words: [
                                    {($ Id.VSub_DollarName ECHO)}
                                    {
                                      (DQ <'*** objects '> ($ Id.VSub_DollarName objs) 
                                        <' is not portable!'>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_append>
                                  more_env: []
                                  words: [
                                    {<func_append>}
                                    {<libobjs>}
                                    {(DQ <' '> ($ Id.VSub_DollarName objs))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          spids: [44435 44446]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<no>}
                            {<Id.Lit_Equals '='>}
                            {(DQ ($ Id.VSub_DollarName dlself))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <func_warning>
                          more_env: []
                          words: [
                            {<func_warning>}
                            {(DQ <'\'-dlopen self\' is ignored for libtool libraries'>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [{<set>} {<dummy>} {($ Id.VSub_DollarName rpath)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<1>} {<-lt>} {(DQ ($ Id.VSub_Pound '#'))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <func_warning>
                          more_env: []
                          words: [
                            {<func_warning>}
                            {(DQ <'ignoring multiple \'-rpath\'s for a libtool library'>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'install_libdir='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'install_libdir='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'install_libdir='>
                              name: install_libdir
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'oldlibs='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'oldlibs='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldlibs='> name:oldlibs)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      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: <test>
                                      more_env: []
                                      words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName rpath))}]
                                      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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<yes>}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName build_libtool_libs))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'oldlibs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'oldlibs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'oldlibs='>
                                              name: oldlibs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                                ($ Id.VSub_DollarName libname) <.> ($ Id.VSub_DollarName libext) <' '> ($ Id.VSub_DollarName oldlibs)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'build_libtool_libs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'build_libtool_libs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'build_libtool_libs='>
                                              name: build_libtool_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: {<convenience>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'build_old_libs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'build_old_libs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'build_old_libs='>
                                              name: build_old_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: {<yes>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [44593 44606]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName vinfo))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_warning>
                                  more_env: []
                                  words: [
                                    {<func_warning>}
                                    {
                                      (DQ 
                                        <
'\'-version-info/-version-number\' is ignored for convenience libraries'
                                        >
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName release))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_warning>
                                  more_env: []
                                  words: [
                                    {<func_warning>}
                                    {(DQ <'\'-release\' is ignored for convenience libraries'>)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                          ]
                          spids: [44579 44590]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'save_ifs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'save_ifs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'save_ifs='>
                                      name: save_ifs
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName IFS)}
                                )
                              ]
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'IFS='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'IFS='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                              op: assign_op.Equal
                              rhs: {<Id.Lit_Colon ':'>}
                            )
                          ]
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <set>
                          more_env: []
                          words: [{<set>} {<dummy>} {($ Id.VSub_DollarName vinfo)} {<0>} {<0>} {<0>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <shift>
                          more_env: []
                          words: [{<shift>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'IFS='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'IFS='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName save_ifs)}
                            )
                          ]
                          redirects: []
                        )
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_Number 7))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <func_fatal_help>
                              more_env: []
                              words: [
                                {<func_fatal_help>}
                                {(DQ <'too many parameters to \'-version-info\''>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_DAmp _>]
                        )
                        (command.Case
                          case_kw: <Id.KW_Case case>
                          to_match: (case_arg.Word w:{($ Id.VSub_DollarName vinfo_number)})
                          arms_start: <Id.KW_In in>
                          arms: [
                            (CaseArm
                              left: <yes>
                              pattern: (pat.Words words:[{<yes>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'number_major='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'number_major='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'number_major='>
                                          name: number_major
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_Number 1)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'number_minor='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'number_minor='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'number_minor='>
                                          name: number_minor
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_Number 2)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'number_revision='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'number_revision='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'number_revision='>
                                          name: number_revision
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_Number 3)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.Case
                                  case_kw: <Id.KW_Case case>
                                  to_match: (case_arg.Word w:{($ Id.VSub_DollarName version_type)})
                                  arms_start: <Id.KW_In in>
                                  arms: [
                                    (CaseArm
                                      left: <darwin>
                                      pattern: 
                                        (pat.Words
                                          words: [
                                            {<darwin>}
                                            {<freebsd-elf>}
                                            {<linux>}
                                            {<osf>}
                                            {<windows>}
                                            {<none>}
                                          ]
                                        )
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.Simple
                                          blame_tok: <func_arith>
                                          more_env: []
                                          words: [
                                            {<func_arith>}
                                            {($ Id.VSub_DollarName number_major)}
                                            {<Id.Lit_Other '+'>}
                                            {($ Id.VSub_DollarName number_minor)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'current='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'current='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'current='>
                                                  name: current
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName func_arith_result)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'age='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'age='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'age='>
                                                  name: age
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName number_minor)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'revision='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'revision='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'revision='>
                                                  name: revision
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName number_revision)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                    (CaseArm
                                      left: <freebsd-aout>
                                      pattern: (pat.Words words:[{<freebsd-aout>} {<qnx>} {<sunos>}])
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'current='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'current='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'current='>
                                                  name: current
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName number_major)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'revision='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'revision='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'revision='>
                                                  name: revision
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName number_minor)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'age='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'age='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'age='>
                                                  name: age
                                                )
                                              op: assign_op.Equal
                                              rhs: {<0>}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                    (CaseArm
                                      left: <irix>
                                      pattern: (pat.Words words:[{<irix>} {<nonstopux>}])
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.Simple
                                          blame_tok: <func_arith>
                                          more_env: []
                                          words: [
                                            {<func_arith>}
                                            {($ Id.VSub_DollarName number_major)}
                                            {<Id.Lit_Other '+'>}
                                            {($ Id.VSub_DollarName number_minor)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'current='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'current='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'current='>
                                                  name: current
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName func_arith_result)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'age='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'age='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'age='>
                                                  name: age
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName number_minor)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'revision='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'revision='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'revision='>
                                                  name: revision
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName number_minor)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'lt_irix_increment='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'lt_irix_increment='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'lt_irix_increment='>
                                                  name: lt_irix_increment
                                                )
                                              op: assign_op.Equal
                                              rhs: {<no>}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                    (CaseArm
                                      left: <Id.Lit_Star '*'>
                                      pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.Simple
                                          blame_tok: <func_fatal_configuration>
                                          more_env: []
                                          words: [
                                            {<func_fatal_configuration>}
                                            {
                                              (DQ ($ Id.VSub_DollarName modename) 
                                                <': unknown library version type \''> ($ Id.VSub_DollarName version_type) <'\''>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                  ]
                                  arms_end: <Id.KW_Esac esac>
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <no>
                              pattern: (pat.Words words:[{<no>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'current='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'current='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'current='>
                                          name: current
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_Number 1)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'revision='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'revision='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'revision='>
                                          name: revision
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_Number 2)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'age='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'age='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'age='> name:age)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_Number 3)}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                          ]
                          arms_end: <Id.KW_Esac esac>
                          redirects: []
                        )
                        (command.Case
                          case_kw: <Id.KW_Case case>
                          to_match: (case_arg.Word w:{($ Id.VSub_DollarName current)})
                          arms_start: <Id.KW_In in>
                          arms: [
                            (CaseArm
                              left: <0>
                              pattern: 
                                (pat.Words
                                  words: [
                                    {<0>}
                                    {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'>}
                                    {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                      <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                    }
                                    {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                      <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                    }
                                    {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                      <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> 
                                      <Id.Lit_RBracket ']'>
                                    }
                                    {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                      <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> 
                                      <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                    }
                                  ]
                                )
                              middle: <Id.Right_CasePat _>
                              action: []
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <Id.Lit_Star '*'>
                              pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.Simple
                                  blame_tok: <func_error>
                                  more_env: []
                                  words: [
                                    {<func_error>}
                                    {
                                      (DQ <'CURRENT \''> ($ Id.VSub_DollarName current) 
                                        <'\' must be a nonnegative integer'>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_fatal_error>
                                  more_env: []
                                  words: [
                                    {<func_fatal_error>}
                                    {
                                      (DQ <'\''> ($ Id.VSub_DollarName vinfo) 
                                        <'\' is not valid version information'>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                          ]
                          arms_end: <Id.KW_Esac esac>
                          redirects: []
                        )
                        (command.Case
                          case_kw: <Id.KW_Case case>
                          to_match: (case_arg.Word w:{($ Id.VSub_DollarName revision)})
                          arms_start: <Id.KW_In in>
                          arms: [
                            (CaseArm
                              left: <0>
                              pattern: 
                                (pat.Words
                                  words: [
                                    {<0>}
                                    {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'>}
                                    {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                      <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                    }
                                    {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                      <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                    }
                                    {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                      <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> 
                                      <Id.Lit_RBracket ']'>
                                    }
                                    {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                      <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> 
                                      <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                    }
                                  ]
                                )
                              middle: <Id.Right_CasePat _>
                              action: []
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <Id.Lit_Star '*'>
                              pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.Simple
                                  blame_tok: <func_error>
                                  more_env: []
                                  words: [
                                    {<func_error>}
                                    {
                                      (DQ <'REVISION \''> ($ Id.VSub_DollarName revision) 
                                        <'\' must be a nonnegative integer'>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_fatal_error>
                                  more_env: []
                                  words: [
                                    {<func_fatal_error>}
                                    {
                                      (DQ <'\''> ($ Id.VSub_DollarName vinfo) 
                                        <'\' is not valid version information'>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                          ]
                          arms_end: <Id.KW_Esac esac>
                          redirects: []
                        )
                        (command.Case
                          case_kw: <Id.KW_Case case>
                          to_match: (case_arg.Word w:{($ Id.VSub_DollarName age)})
                          arms_start: <Id.KW_In in>
                          arms: [
                            (CaseArm
                              left: <0>
                              pattern: 
                                (pat.Words
                                  words: [
                                    {<0>}
                                    {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'>}
                                    {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                      <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                    }
                                    {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                      <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                    }
                                    {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                      <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> 
                                      <Id.Lit_RBracket ']'>
                                    }
                                    {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                      <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> 
                                      <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                    }
                                  ]
                                )
                              middle: <Id.Right_CasePat _>
                              action: []
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <Id.Lit_Star '*'>
                              pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.Simple
                                  blame_tok: <func_error>
                                  more_env: []
                                  words: [
                                    {<func_error>}
                                    {
                                      (DQ <'AGE \''> ($ Id.VSub_DollarName age) 
                                        <'\' must be a nonnegative integer'>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_fatal_error>
                                  more_env: []
                                  words: [
                                    {<func_fatal_error>}
                                    {
                                      (DQ <'\''> ($ Id.VSub_DollarName vinfo) 
                                        <'\' is not valid version information'>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                          ]
                          arms_end: <Id.KW_Esac esac>
                          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: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {(DQ ($ Id.VSub_DollarName age))}
                                            {<-gt>}
                                            {(DQ ($ Id.VSub_DollarName current))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.Simple
                                  blame_tok: <func_error>
                                  more_env: []
                                  words: [
                                    {<func_error>}
                                    {
                                      (DQ <'AGE \''> ($ Id.VSub_DollarName age) 
                                        <'\' is greater than the current interface number \''> ($ Id.VSub_DollarName current) <'\''>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_fatal_error>
                                  more_env: []
                                  words: [
                                    {<func_fatal_error>}
                                    {
                                      (DQ <'\''> ($ Id.VSub_DollarName vinfo) 
                                        <'\' is not valid version information'>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              spids: [45241 45256]
                            )
                          ]
                          else_action: []
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'major='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'major='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'major='> name:major)
                              op: assign_op.Equal
                              rhs: (rhs_word__Empty)
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'versuffix='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'versuffix='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'versuffix='>
                                  name: versuffix
                                )
                              op: assign_op.Equal
                              rhs: (rhs_word__Empty)
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'verstring='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'verstring='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'verstring='>
                                  name: verstring
                                )
                              op: assign_op.Equal
                              rhs: (rhs_word__Empty)
                            )
                          ]
                          redirects: []
                        )
                        (command.Case
                          case_kw: <Id.KW_Case case>
                          to_match: (case_arg.Word w:{($ Id.VSub_DollarName version_type)})
                          arms_start: <Id.KW_In in>
                          arms: [
                            (CaseArm
                              left: <none>
                              pattern: (pat.Words words:[{<none>}])
                              middle: <Id.Right_CasePat _>
                              action: []
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <darwin>
                              pattern: (pat.Words words:[{<darwin>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.Simple
                                  blame_tok: <func_arith>
                                  more_env: []
                                  words: [
                                    {<func_arith>}
                                    {($ Id.VSub_DollarName current)}
                                    {<->}
                                    {($ Id.VSub_DollarName age)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'major='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'major='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName func_arith_result)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'versuffix='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'versuffix='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'versuffix='>
                                          name: versuffix
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName major) <.> ($ Id.VSub_DollarName age) 
                                          <.> ($ Id.VSub_DollarName revision)
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.Simple
                                  blame_tok: <func_arith>
                                  more_env: []
                                  words: [
                                    {<func_arith>}
                                    {($ Id.VSub_DollarName current)}
                                    {<Id.Lit_Other '+'>}
                                    {<1>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'minor_current='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'minor_current='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'minor_current='>
                                          name: minor_current
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName func_arith_result)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'xlcverstring='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'xlcverstring='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'xlcverstring='>
                                          name: xlcverstring
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName wl) <'-compatibility_version '> 
                                            ($ Id.VSub_DollarName wl) ($ Id.VSub_DollarName minor_current) <' '> ($ Id.VSub_DollarName wl) <'-current_version '> 
                                            ($ Id.VSub_DollarName wl) ($ Id.VSub_DollarName minor_current) <.> ($ Id.VSub_DollarName revision)
                                          )
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'verstring='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'verstring='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'verstring='>
                                          name: verstring
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ <'-compatibility_version '> 
                                            ($ Id.VSub_DollarName minor_current) <' -current_version '> ($ Id.VSub_DollarName minor_current) <.> ($ Id.VSub_DollarName revision)
                                          )
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.Case
                                  case_kw: <Id.KW_Case case>
                                  to_match: (case_arg.Word w:{($ Id.VSub_DollarName CC)})
                                  arms_start: <Id.KW_In in>
                                  arms: [
                                    (CaseArm
                                      left: <nagfor>
                                      pattern: (pat.Words words:[{<nagfor> <Id.Lit_Star '*'>}])
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'verstring='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'verstring='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'verstring='>
                                                  name: verstring
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName wl) 
                                                    <'-compatibility_version '> ($ Id.VSub_DollarName wl) ($ Id.VSub_DollarName minor_current) <' '> ($ Id.VSub_DollarName wl) 
                                                    <'-current_version '> ($ Id.VSub_DollarName wl) ($ Id.VSub_DollarName minor_current) <.> ($ Id.VSub_DollarName revision)
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                    (CaseArm
                                      left: <Id.Lit_Star '*'>
                                      pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'verstring='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'verstring='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'verstring='>
                                                  name: verstring
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ <'-compatibility_version '> 
                                                    ($ Id.VSub_DollarName minor_current) <' -current_version '> ($ Id.VSub_DollarName minor_current) <.> ($ Id.VSub_DollarName revision)
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                  ]
                                  arms_end: <Id.KW_Esac esac>
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <freebsd-aout>
                              pattern: (pat.Words words:[{<freebsd-aout>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'major='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'major='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName current)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'versuffix='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'versuffix='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'versuffix='>
                                          name: versuffix
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {<.> ($ Id.VSub_DollarName current) <.> 
                                          ($ Id.VSub_DollarName revision)
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <freebsd-elf>
                              pattern: (pat.Words words:[{<freebsd-elf>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.Simple
                                  blame_tok: <func_arith>
                                  more_env: []
                                  words: [
                                    {<func_arith>}
                                    {($ Id.VSub_DollarName current)}
                                    {<->}
                                    {($ Id.VSub_DollarName age)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'major='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'major='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName func_arith_result)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'versuffix='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'versuffix='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'versuffix='>
                                          name: versuffix
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName major) <.> ($ Id.VSub_DollarName age) 
                                          <.> ($ Id.VSub_DollarName revision)
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <irix>
                              pattern: (pat.Words words:[{<irix>} {<nonstopux>}])
                              middle: <Id.Right_CasePat _>
                              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: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<no>}
                                                    {<Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName lt_irix_increment))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.Simple
                                          blame_tok: <func_arith>
                                          more_env: []
                                          words: [
                                            {<func_arith>}
                                            {($ Id.VSub_DollarName current)}
                                            {<->}
                                            {($ Id.VSub_DollarName age)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      spids: [45506 45519]
                                    )
                                  ]
                                  else_kw: <Id.KW_Else else>
                                  else_action: [
                                    (command.Simple
                                      blame_tok: <func_arith>
                                      more_env: []
                                      words: [
                                        {<func_arith>}
                                        {($ Id.VSub_DollarName current)}
                                        {<->}
                                        {($ Id.VSub_DollarName age)}
                                        {<Id.Lit_Other '+'>}
                                        {<1>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  fi_kw: <Id.KW_Fi fi>
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'major='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'major='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName func_arith_result)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.Case
                                  case_kw: <Id.KW_Case case>
                                  to_match: (case_arg.Word w:{($ Id.VSub_DollarName version_type)})
                                  arms_start: <Id.KW_In in>
                                  arms: [
                                    (CaseArm
                                      left: <nonstopux>
                                      pattern: (pat.Words words:[{<nonstopux>}])
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'verstring_prefix='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'verstring_prefix='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'verstring_prefix='>
                                                  name: verstring_prefix
                                                )
                                              op: assign_op.Equal
                                              rhs: {<nonstopux>}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                    (CaseArm
                                      left: <Id.Lit_Star '*'>
                                      pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'verstring_prefix='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'verstring_prefix='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'verstring_prefix='>
                                                  name: verstring_prefix
                                                )
                                              op: assign_op.Equal
                                              rhs: {<sgi>}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                  ]
                                  arms_end: <Id.KW_Esac esac>
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'verstring='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'verstring='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'verstring='>
                                          name: verstring
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName verstring_prefix) 
                                          ($ Id.VSub_DollarName major) <.> ($ Id.VSub_DollarName revision)
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'loop='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'loop='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'loop='> name:loop)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName revision)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.WhileUntil
                                  keyword: <Id.KW_While while>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<0>}
                                                {<-ne>}
                                                {(DQ ($ Id.VSub_DollarName loop))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  body: 
                                    (command.DoGroup
                                      left: <Id.KW_Do do>
                                      children: [
                                        (command.Simple
                                          blame_tok: <func_arith>
                                          more_env: []
                                          words: [
                                            {<func_arith>}
                                            {($ Id.VSub_DollarName revision)}
                                            {<->}
                                            {($ Id.VSub_DollarName loop)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'iface='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'iface='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'iface='>
                                                  name: iface
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName func_arith_result)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <func_arith>
                                          more_env: []
                                          words: [
                                            {<func_arith>}
                                            {($ Id.VSub_DollarName loop)}
                                            {<->}
                                            {<1>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'loop='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'loop='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'loop='>
                                                  name: loop
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName func_arith_result)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'verstring='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'verstring='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'verstring='>
                                                  name: verstring
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName verstring_prefix) 
                                                  ($ Id.VSub_DollarName major) <.> ($ Id.VSub_DollarName iface) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName verstring)
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      right: <Id.KW_Done done>
                                    )
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'major='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'major='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName major)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'versuffix='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'versuffix='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'versuffix='>
                                          name: versuffix
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName major) <.> 
                                          ($ Id.VSub_DollarName revision)
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <linux>
                              pattern: (pat.Words words:[{<linux>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.Simple
                                  blame_tok: <func_arith>
                                  more_env: []
                                  words: [
                                    {<func_arith>}
                                    {($ Id.VSub_DollarName current)}
                                    {<->}
                                    {($ Id.VSub_DollarName age)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'major='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'major='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName func_arith_result)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'versuffix='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'versuffix='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'versuffix='>
                                          name: versuffix
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName major) <.> ($ Id.VSub_DollarName age) 
                                          <.> ($ Id.VSub_DollarName revision)
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <osf>
                              pattern: (pat.Words words:[{<osf>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.Simple
                                  blame_tok: <func_arith>
                                  more_env: []
                                  words: [
                                    {<func_arith>}
                                    {($ Id.VSub_DollarName current)}
                                    {<->}
                                    {($ Id.VSub_DollarName age)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'major='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'major='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName func_arith_result)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'versuffix='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'versuffix='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'versuffix='>
                                          name: versuffix
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {<.> ($ Id.VSub_DollarName current) <.> 
                                          ($ Id.VSub_DollarName age) <.> ($ Id.VSub_DollarName revision)
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'verstring='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'verstring='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'verstring='>
                                          name: verstring
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName current) <.> ($ Id.VSub_DollarName age) 
                                          <.> ($ Id.VSub_DollarName revision)
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'loop='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'loop='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'loop='> name:loop)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName age)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.WhileUntil
                                  keyword: <Id.KW_While while>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<0>}
                                                {<-ne>}
                                                {(DQ ($ Id.VSub_DollarName loop))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  body: 
                                    (command.DoGroup
                                      left: <Id.KW_Do do>
                                      children: [
                                        (command.Simple
                                          blame_tok: <func_arith>
                                          more_env: []
                                          words: [
                                            {<func_arith>}
                                            {($ Id.VSub_DollarName current)}
                                            {<->}
                                            {($ Id.VSub_DollarName loop)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'iface='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'iface='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'iface='>
                                                  name: iface
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName func_arith_result)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <func_arith>
                                          more_env: []
                                          words: [
                                            {<func_arith>}
                                            {($ Id.VSub_DollarName loop)}
                                            {<->}
                                            {<1>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'loop='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'loop='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'loop='>
                                                  name: loop
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName func_arith_result)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'verstring='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'verstring='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'verstring='>
                                                  name: verstring
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName verstring) <Id.Lit_Colon ':'> 
                                                  ($ Id.VSub_DollarName iface) <.0>
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      right: <Id.KW_Done done>
                                    )
                                  redirects: []
                                )
                                (command.Simple
                                  blame_tok: <func_append>
                                  more_env: []
                                  words: [
                                    {<func_append>}
                                    {<verstring>}
                                    {(DQ <':'> ($ Id.VSub_DollarName current) <.0>)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <qnx>
                              pattern: (pat.Words words:[{<qnx>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'major='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'major='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName current)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'versuffix='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'versuffix='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'versuffix='>
                                          name: versuffix
                                        )
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName current)}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <sco>
                              pattern: (pat.Words words:[{<sco>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'major='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'major='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName current)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'versuffix='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'versuffix='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'versuffix='>
                                          name: versuffix
                                        )
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName current)}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <sunos>
                              pattern: (pat.Words words:[{<sunos>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'major='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'major='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName current)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'versuffix='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'versuffix='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'versuffix='>
                                          name: versuffix
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {<.> ($ Id.VSub_DollarName current) <.> 
                                          ($ Id.VSub_DollarName revision)
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <windows>
                              pattern: (pat.Words words:[{<windows>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.Simple
                                  blame_tok: <func_arith>
                                  more_env: []
                                  words: [
                                    {<func_arith>}
                                    {($ Id.VSub_DollarName current)}
                                    {<->}
                                    {($ Id.VSub_DollarName age)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'major='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'major='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName func_arith_result)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'versuffix='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'versuffix='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'versuffix='>
                                          name: versuffix
                                        )
                                      op: assign_op.Equal
                                      rhs: {<-> ($ Id.VSub_DollarName major)}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <Id.Lit_Star '*'>
                              pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.Simple
                                  blame_tok: <func_fatal_configuration>
                                  more_env: []
                                  words: [
                                    {<func_fatal_configuration>}
                                    {
                                      (DQ <'unknown library version type \''> 
                                        ($ Id.VSub_DollarName version_type) <'\''>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                          ]
                          arms_end: <Id.KW_Esac esac>
                          redirects: []
                        )
                        (command.If
                          if_kw: <Id.KW_If if>
                          arms: [
                            (IfArm
                              keyword: <Id.KW_If if>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.AndOr
                                          children: [
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName vinfo))}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-n>}
                                                {(DQ ($ Id.VSub_DollarName release))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          ops: [<Id.Op_DAmp _>]
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'major='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'major='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: (rhs_word__Empty)
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.Case
                                  case_kw: <Id.KW_Case case>
                                  to_match: (case_arg.Word w:{($ Id.VSub_DollarName version_type)})
                                  arms_start: <Id.KW_In in>
                                  arms: [
                                    (CaseArm
                                      left: <darwin>
                                      pattern: (pat.Words words:[{<darwin>}])
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'verstring='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'verstring='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'verstring='>
                                                  name: verstring
                                                )
                                              op: assign_op.Equal
                                              rhs: (rhs_word__Empty)
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                    (CaseArm
                                      left: <Id.Lit_Star '*'>
                                      pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'verstring='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'verstring='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'verstring='>
                                                  name: verstring
                                                )
                                              op: assign_op.Equal
                                              rhs: {<0.0>}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                  ]
                                  arms_end: <Id.KW_Esac esac>
                                  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: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<no>}
                                                    {<Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName need_version))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'versuffix='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'versuffix='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'versuffix='>
                                                  name: versuffix
                                                )
                                              op: assign_op.Equal
                                              rhs: (rhs_word__Empty)
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [46002 46015]
                                    )
                                  ]
                                  else_kw: <Id.KW_Else else>
                                  else_action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'versuffix='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'versuffix='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'versuffix='>
                                              name: versuffix
                                            )
                                          op: assign_op.Equal
                                          rhs: {<.0.0>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  fi_kw: <Id.KW_Fi fi>
                                  redirects: []
                                )
                              ]
                              spids: [45936 45957]
                            )
                          ]
                          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: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<yes> <Id.Lit_Comma ','> <no>}
                                            {<Id.Lit_Equals '='>}
                                            {
                                              (DQ ($ Id.VSub_DollarName avoid_version) <','> 
                                                ($ Id.VSub_DollarName need_version)
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'major='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'major='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'major='>
                                          name: major
                                        )
                                      op: assign_op.Equal
                                      rhs: (rhs_word__Empty)
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'versuffix='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'versuffix='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'versuffix='>
                                          name: versuffix
                                        )
                                      op: assign_op.Equal
                                      rhs: (rhs_word__Empty)
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'verstring='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'verstring='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'verstring='>
                                          name: verstring
                                        )
                                      op: assign_op.Equal
                                      rhs: (rhs_word__Empty)
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [46039 46056]
                            )
                          ]
                          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: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<yes>}
                                            {<Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_DollarName allow_undefined))}
                                          ]
                                          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: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<unsupported>}
                                                    {<Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName allow_undefined_flag))}
                                                  ]
                                                  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: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<yes>}
                                                            {<Id.Lit_Equals '='>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName build_old_libs)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              then_kw: <Id.KW_Then then>
                                              action: [
                                                (command.Simple
                                                  blame_tok: <func_warning>
                                                  more_env: []
                                                  words: [
                                                    {<func_warning>}
                                                    {
                                                      (DQ <'undefined symbols not allowed in '> 
                                                        ($ Id.VSub_DollarName host) <' shared libraries; building static only'>
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'build_libtool_libs='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'build_libtool_libs='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: 
                                                            <Id.Lit_VarLike 'build_libtool_libs='>
                                                          name: build_libtool_libs
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {<no>}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              spids: [46108 46121]
                                            )
                                          ]
                                          else_kw: <Id.KW_Else else>
                                          else_action: [
                                            (command.Simple
                                              blame_tok: <func_fatal_error>
                                              more_env: []
                                              words: [
                                                {<func_fatal_error>}
                                                {
                                                  (DQ <'can\'t build '> ($ Id.VSub_DollarName host) 
                                                    <
' shared library unless -no-undefined is specified'
                                                    >
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          fi_kw: <Id.KW_Fi fi>
                                          redirects: []
                                        )
                                      ]
                                      spids: [46092 46105]
                                    )
                                  ]
                                  else_action: []
                                  fi_kw: <Id.KW_Fi fi>
                                  redirects: []
                                )
                              ]
                              spids: [46076 46089]
                            )
                          ]
                          else_kw: <Id.KW_Else else>
                          else_action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'allow_undefined_flag='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'allow_undefined_flag='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'allow_undefined_flag='>
                                      name: allow_undefined_flag
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName no_undefined_flag)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_generate_dlsyms>
                      more_env: []
                      words: [
                        {<func_generate_dlsyms>}
                        {(DQ ($ Id.VSub_DollarName libname))}
                        {(DQ ($ Id.VSub_DollarName libname))}
                        {<Id.Lit_Colon ':'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <func_append>
                      more_env: []
                      words: [{<func_append>} {<libobjs>} {(DQ <' '> ($ Id.VSub_DollarName symfileobj))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {(DQ <' '>)}
                            {<Id.Lit_Equals '='>}
                            {(DQ ($ Id.VSub_DollarName libobjs))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'libobjs='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'libobjs='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libobjs='> name:libobjs)
                              op: assign_op.Equal
                              rhs: (rhs_word__Empty)
                            )
                          ]
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (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>}
                                        {<relink>}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName opt_mode))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'removelist='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'removelist='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'removelist='>
                                      name: removelist
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'tempremovelist='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'tempremovelist='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'tempremovelist='>
                                      name: tempremovelist
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <Id.VSub_DollarName '$ECHO'>
                                            more_env: []
                                            words: [
                                              {($ Id.VSub_DollarName ECHO)}
                                              {(DQ ($ Id.VSub_DollarName output_objdir) <'/*'>)}
                                            ]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [p]
                              iterable: 
                                (for_iter.Words
                                  words: [{($ Id.VSub_DollarName tempremovelist)}]
                                )
                              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 p)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName objext)}
                                                {<Id.Lit_Star '*'> <.gcno>}
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.VSub_DollarName '$output_objdir'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {($ Id.VSub_DollarName output_objdir) <'/'> 
                                                  ($ Id.VSub_DollarName outputname)
                                                }
                                                {($ Id.VSub_DollarName output_objdir) <'/'> 
                                                  ($ Id.VSub_DollarName libname) <.> <Id.Lit_Star '*'>
                                                }
                                                {($ Id.VSub_DollarName output_objdir) <'/'> 
                                                  ($ Id.VSub_DollarName libname) ($ Id.VSub_DollarName release) <.> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-n>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
precious_files_regex
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              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.Pipeline
                                                                  children: [
                                                                    (command.Simple
                                                                      blame_tok: 
                                                                        <Id.VSub_DollarName '$ECHO'>
                                                                      more_env: []
                                                                      words: [
                                                                        {($ Id.VSub_DollarName ECHO)}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName p)
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: 
                                                                        <Id.VSub_DollarName '$EGREP'>
                                                                      more_env: []
                                                                      words: [
                                                                        {
                                                                          ($ Id.VSub_DollarName EGREP)
                                                                        }
                                                                        {<-e>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
precious_files_regex
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      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
                                                                    )
                                                                  ]
                                                                  ops: [<Id.Op_Pipe _>]
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ControlFlow
                                                              keyword: 
                                                                <Id.ControlFlow_Continue continue>
                                                            )
                                                          ]
                                                          spids: [46326 46351]
                                                        )
                                                      ]
                                                      else_action: []
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [46312 46323]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<removelist>}
                                                {(DQ <' '> ($ Id.VSub_DollarName p))}
                                              ]
                                              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: []
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName removelist))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_show_eval>
                                  more_env: []
                                  words: [
                                    {<func_show_eval>}
                                    {
                                      (DQ (${ Id.VSub_Name RM) <'r '> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                          ch: '$'
                                        ) <removelist>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                          ]
                          spids: [46215 46229]
                        )
                      ]
                      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.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<yes>}
                                            {<Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_DollarName build_old_libs))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<convenience>}
                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_DollarName build_libtool_libs))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<oldlibs>}
                                {
                                  (DQ <' '> ($ Id.VSub_DollarName output_objdir) <'/'> 
                                    ($ Id.VSub_DollarName libname) <.> ($ Id.VSub_DollarName libext)
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'oldobjs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'oldobjs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'oldobjs='>
                                      name: oldobjs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {(DQ ($ Id.VSub_DollarName objs) <' '>) 
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName ECHO)}
                                                  {(DQ ($ Id.VSub_DollarName libobjs))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SP2NL'>
                                                more_env: []
                                                words: [{($ Id.VSub_DollarName SP2NL)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {
                                                    (DQ <'/'> <Id.Lit_BadBackslash '\\'> <.> 
                                                      ($ Id.VSub_DollarName libext) <Id.Lit_Dollar '$'> <'/d; '> ($ Id.VSub_DollarName lo2o)
                                                    )
                                                  }
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$NL2SP'>
                                                more_env: []
                                                words: [{($ Id.VSub_DollarName NL2SP)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [46420 46446]
                        )
                      ]
                      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: <test>
                                      more_env: []
                                      words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName xrpath))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'temp_xrpath='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'temp_xrpath='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'temp_xrpath='>
                                      name: temp_xrpath
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [libdir]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName xrpath)}])
                              semi_tok: <Id.Op_Semi _>
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Simple
                                      blame_tok: <func_replace_sysroot>
                                      more_env: []
                                      words: [
                                        {<func_replace_sysroot>}
                                        {(DQ ($ Id.VSub_DollarName libdir))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<temp_xrpath>}
                                        {
                                          (DQ <' -R'> 
                                            ($ Id.VSub_DollarName func_replace_sysroot_result)
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ ($ Id.VSub_DollarName finalize_rpath) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName libdir) <' '>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<finalize_rpath>}
                                                {(DQ <' '> ($ Id.VSub_DollarName libdir))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<yes>}
                                                    {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName hardcode_into_libs))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<yes>}
                                                    {<Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName build_old_libs))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'dependency_libs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'dependency_libs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'dependency_libs='>
                                              name: dependency_libs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName temp_xrpath) <' '> 
                                                ($ Id.VSub_DollarName dependency_libs)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [46630 46656]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          spids: [46537 46548]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'old_dlfiles='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'old_dlfiles='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'old_dlfiles='>
                              name: old_dlfiles
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName dlfiles)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'dlfiles='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'dlfiles='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dlfiles='> name:dlfiles)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [lib]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName old_dlfiles)}])
                      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: 
                                    {
                                      (DQ <' '> ($ Id.VSub_DollarName dlprefiles) <' '> 
                                        ($ Id.VSub_DollarName dlfiles) <' '>
                                      )
                                    }
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName lib) <' '>) 
                                          <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<dlfiles>}
                                        {(DQ <' '> ($ Id.VSub_DollarName lib))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'old_dlprefiles='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'old_dlprefiles='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'old_dlprefiles='>
                              name: old_dlprefiles
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName dlprefiles)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'dlprefiles='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'dlprefiles='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dlprefiles='> name:dlprefiles)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [lib]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName old_dlprefiles)}])
                      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:{(DQ ($ Id.VSub_DollarName dlprefiles) <' '>)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName lib) <' '>) 
                                          <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<dlprefiles>}
                                        {(DQ <' '> ($ Id.VSub_DollarName lib))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      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: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<yes>}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName build_libtool_libs))}
                                      ]
                                      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: <test>
                                              more_env: []
                                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName rpath))}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-cygwin> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-mingw> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-pw32> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-os2> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-beos> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-cegcc> <Id.Lit_Star '*'>}
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-haiku> 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-rhapsody> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-darwin1.> 
                                                  <Id.Lit_LBracket '['> <012> <Id.Lit_RBracket ']'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<deplibs>}
                                                {(DQ <' System.ltframework'>)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-netbsd> 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-openbsd> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-freebsd> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-dragonfly> 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-sco3.2v5> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-sco5v6> 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-sysv4.2uw2> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-sysv5> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-unixware> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-OpenUNIX> 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.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>}
                                                                {<yes>}
                                                                {<Id.Lit_Equals '='>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
build_libtool_need_lc
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [{<func_append>} {<deplibs>} {(DQ <' -lc'>)}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [47059 47072]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  spids: [46827 46838]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'name_save='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'name_save='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'name_save='>
                                      name: name_save
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName name)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'libname_save='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'libname_save='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'libname_save='>
                                      name: libname_save
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName libname)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'release_save='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'release_save='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'release_save='>
                                      name: release_save
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName release)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'versuffix_save='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'versuffix_save='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'versuffix_save='>
                                      name: versuffix_save
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName versuffix)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'major_save='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'major_save='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'major_save='>
                                      name: major_save
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName major)}
                                )
                              ]
                              redirects: []
                            )
                            (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: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'versuffix='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'versuffix='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'versuffix='>
                                      name: versuffix
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'major='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'major='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'major='> name:major)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'newdeplibs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'newdeplibs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'newdeplibs='>
                                      name: newdeplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'droppeddeps='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'droppeddeps='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'droppeddeps='>
                                      name: droppeddeps
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName deplibs_check_method)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <pass_all>
                                  pattern: (pat.Words words:[{<pass_all>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'newdeplibs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'newdeplibs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'newdeplibs='>
                                              name: newdeplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName deplibs)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <test_compile>
                                  pattern: (pat.Words words:[{<test_compile>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                          more_env: []
                                          words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$RM'>
                                          more_env: []
                                          words: [{($ Id.VSub_DollarName RM)} {<conftest.c>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.Simple
                                      blame_tok: <cat>
                                      more_env: []
                                      words: [{<cat>}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<conftest.c>}
                                        )
                                        (Redir
                                          op: <Id.Redir_DLess '<<'>
                                          loc: (redir_loc.Fd fd:0)
                                          arg: 
                                            (redir_param.HereDoc
                                              here_begin: {<EOF>}
                                              here_end_tok: <Id.Undefined_Tok ''>
                                              stdin_parts: [<'\t  int main() { return 0; }\n'>]
                                            )
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                          more_env: []
                                          words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$RM'>
                                          more_env: []
                                          words: [{($ Id.VSub_DollarName RM)} {<conftest>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (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.VSub_DollarName '$LTCC'>
                                                      more_env: []
                                                      words: [
                                                        {($ Id.VSub_DollarName LTCC)}
                                                        {($ Id.VSub_DollarName LTCFLAGS)}
                                                        {<-o>}
                                                        {<conftest>}
                                                        {<conftest.c>}
                                                        {($ Id.VSub_DollarName deplibs)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'ldd_output='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'ldd_output='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'ldd_output='>
                                                      name: ldd_output
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <ldd>
                                                            more_env: []
                                                            words: [{<ldd>} {<conftest>}]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [i]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName deplibs)}]
                                                )
                                              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 i)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <-l>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<-l> <Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_stripname>
                                                              more_env: []
                                                              words: [
                                                                {<func_stripname>}
                                                                {<-l>}
                                                                {(SQ )}
                                                                {(DQ ($ Id.VSub_DollarName i))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'name='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'name='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'name='>
                                                                      name: name
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
func_stripname_result
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              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: <test>
                                                                              more_env: []
                                                                              words: [
                                                                                {<test>}
                                                                                {<yes>}
                                                                                {<Id.Lit_Equals '='>}
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName allow_libtool_libs_with_static_runtimes
                                                                                    )
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              (DQ <' '> 
                                                                                ($ 
Id.VSub_DollarName predeps
                                                                                ) <' '> ($ Id.VSub_DollarName postdeps) <' '>
                                                                              )
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'> 
                                                                                  (DQ <' '> 
                                                                                    ($ 
Id.VSub_DollarName i
                                                                                    ) <' '>
                                                                                  ) <Id.Lit_Star '*'>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: 
                                                                                <func_append>
                                                                              more_env: []
                                                                              words: [
                                                                                {<func_append>}
                                                                                {<newdeplibs>}
                                                                                {
                                                                                  (DQ <' '> 
                                                                                    ($ 
Id.VSub_DollarName i
                                                                                    )
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'i='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'i='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'i='
                                                                                        >
                                                                                      name: i
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: (rhs_word__Empty)
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [47306 47319]
                                                                )
                                                              ]
                                                              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: <test>
                                                                              more_env: []
                                                                              words: [
                                                                                {<test>}
                                                                                {<-n>}
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName i
                                                                                    )
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 'libname='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'libname='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'libname='
                                                                                >
                                                                              name: libname
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (CommandSub
                                                                                left_token: 
                                                                                  <Id.Left_Backtick 
'`'
                                                                                  >
                                                                                child: 
                                                                                  (command.Simple
                                                                                    blame_tok: <eval>
                                                                                    more_env: []
                                                                                    words: [
                                                                                      {<eval>}
                                                                                      {
                                                                                        (DQ 
                                                                                          (word_part.EscapedLiteral
                                                                                            token: 
                                                                                              <
Id.Lit_EscapedChar '\\$'
                                                                                              >
                                                                                            ch: '$'
                                                                                          ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                                                          ($ 
Id.VSub_DollarName libname_spec
                                                                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                                        )
                                                                                      }
                                                                                    ]
                                                                                    redirects: []
                                                                                    do_fork: T
                                                                                  )
                                                                                right: 
                                                                                  <
Id.Backtick_Right '`'
                                                                                  >
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'deplib_matches='
                                                                        >
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'deplib_matches='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'deplib_matches='
                                                                                >
                                                                              name: deplib_matches
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (CommandSub
                                                                                left_token: 
                                                                                  <Id.Left_Backtick 
'`'
                                                                                  >
                                                                                child: 
                                                                                  (command.Simple
                                                                                    blame_tok: <eval>
                                                                                    more_env: []
                                                                                    words: [
                                                                                      {<eval>}
                                                                                      {
                                                                                        (DQ 
                                                                                          (word_part.EscapedLiteral
                                                                                            token: 
                                                                                              <
Id.Lit_EscapedChar '\\$'
                                                                                              >
                                                                                            ch: '$'
                                                                                          ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                                                          ($ 
Id.VSub_DollarName library_names_spec
                                                                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                                        )
                                                                                      }
                                                                                    ]
                                                                                    redirects: []
                                                                                    do_fork: T
                                                                                  )
                                                                                right: 
                                                                                  <
Id.Backtick_Right '`'
                                                                                  >
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.Sentence
                                                                      child: 
                                                                        (command.Simple
                                                                          blame_tok: <set>
                                                                          more_env: []
                                                                          words: [
                                                                            {<set>}
                                                                            {<dummy>}
                                                                            {
                                                                              ($ Id.VSub_DollarName 
deplib_matches
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                      terminator: <Id.Op_Semi _>
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <shift>
                                                                      more_env: []
                                                                      words: [{<shift>}]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'deplib_match='
                                                                        >
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'deplib_match='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'deplib_match='
                                                                                >
                                                                              name: deplib_match
                                                                            )
                                                                          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: 
                                                                                        <test>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<test>}
                                                                                        {
                                                                                          (CommandSub
                                                                                            left_token: 
                                                                                              <
Id.Left_Backtick '`'
                                                                                              >
                                                                                            child: 
                                                                                              (command.Simple
                                                                                                blame_tok: 
                                                                                                  <
expr
                                                                                                  >
                                                                                                more_env: []
                                                                                                words: [
                                                                                                  {
                                                                                                    <
expr
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    (DQ 
                                                                                                      ($ 
Id.VSub_DollarName ldd_output
                                                                                                      )
                                                                                                    )
                                                                                                  }
                                                                                                  {
                                                                                                    <
Id.Lit_Colon ':'
                                                                                                    >
                                                                                                  }
                                                                                                  {
                                                                                                    (DQ 
                                                                                                      <
'.*'
                                                                                                      > ($ Id.VSub_DollarName deplib_match)
                                                                                                    )
                                                                                                  }
                                                                                                ]
                                                                                                redirects: []
                                                                                                do_fork: 
T
                                                                                              )
                                                                                            right: 
                                                                                              <
Id.Backtick_Right '`'
                                                                                              >
                                                                                          )
                                                                                        }
                                                                                        {<-ne>}
                                                                                        {<0>}
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                  terminator: 
                                                                                    <Id.Op_Semi _>
                                                                                )
                                                                              ]
                                                                            )
                                                                          then_kw: <Id.KW_Then then>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: 
                                                                                <func_append>
                                                                              more_env: []
                                                                              words: [
                                                                                {<func_append>}
                                                                                {<newdeplibs>}
                                                                                {
                                                                                  (DQ <' '> 
                                                                                    ($ 
Id.VSub_DollarName i
                                                                                    )
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          spids: [47439 47465]
                                                                        )
                                                                      ]
                                                                      else_kw: <Id.KW_Else else>
                                                                      else_action: [
                                                                        (command.ShAssignment
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'droppeddeps='
                                                                            >
                                                                          pairs: [
                                                                            (AssignPair
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'droppeddeps='
                                                                                >
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'droppeddeps='
                                                                                    >
                                                                                  name: droppeddeps
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: {<yes>}
                                                                            )
                                                                          ]
                                                                          redirects: []
                                                                        )
                                                                        (command.Simple
                                                                          blame_tok: <echo>
                                                                          more_env: []
                                                                          words: [{<echo>}]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                        (command.Simple
                                                                          blame_tok: 
                                                                            <Id.VSub_DollarName 
'$ECHO'
                                                                            >
                                                                          more_env: []
                                                                          words: [
                                                                            {
                                                                              ($ Id.VSub_DollarName 
ECHO
                                                                              )
                                                                            }
                                                                            {
                                                                              (DQ 
                                                                                <
'*** Warning: dynamic linker does not accept needed library '
                                                                                > ($ Id.VSub_DollarName i) <.>
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                        (command.Simple
                                                                          blame_tok: <echo>
                                                                          more_env: []
                                                                          words: [
                                                                            {<echo>}
                                                                            {
                                                                              (DQ 
                                                                                <
'*** I have the capability to make that library automatically link in when'
                                                                                >
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                        (command.Simple
                                                                          blame_tok: <echo>
                                                                          more_env: []
                                                                          words: [
                                                                            {<echo>}
                                                                            {
                                                                              (DQ 
                                                                                <
'*** you link to this library.  But I can only do this if you have a'
                                                                                >
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                        (command.Simple
                                                                          blame_tok: <echo>
                                                                          more_env: []
                                                                          words: [
                                                                            {<echo>}
                                                                            {
                                                                              (DQ 
                                                                                <
'*** shared version of the library, which I believe you do not have'
                                                                                >
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                        (command.Simple
                                                                          blame_tok: <echo>
                                                                          more_env: []
                                                                          words: [
                                                                            {<echo>}
                                                                            {
                                                                              (DQ 
                                                                                <
'*** because a test_compile did reveal that the linker did not use it for'
                                                                                >
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                        (command.Simple
                                                                          blame_tok: <echo>
                                                                          more_env: []
                                                                          words: [
                                                                            {<echo>}
                                                                            {
                                                                              (DQ 
                                                                                <
'*** its dynamic dependency list that programs get resolved with at runtime.'
                                                                                >
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                      ]
                                                                      fi_kw: <Id.KW_Fi fi>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [47367 47378]
                                                                )
                                                              ]
                                                              else_action: []
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_append>
                                                              more_env: []
                                                              words: [
                                                                {<func_append>}
                                                                {<newdeplibs>}
                                                                {(DQ <' '> ($ Id.VSub_DollarName i))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                          ]
                                          spids: [47238 47253]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.ForEach
                                          keyword: <Id.KW_For for>
                                          iter_names: [i]
                                          iterable: 
                                            (for_iter.Words
                                              words: [{($ Id.VSub_DollarName deplibs)}]
                                            )
                                          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 i)}
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <-l>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [{<-l> <Id.Lit_Star '*'>}]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <func_stripname>
                                                          more_env: []
                                                          words: [
                                                            {<func_stripname>}
                                                            {<-l>}
                                                            {(SQ )}
                                                            {(DQ ($ Id.VSub_DollarName i))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'name='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'name='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'name='>
                                                                  name: name
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  ($ Id.VSub_DollarName 
func_stripname_result
                                                                  )
                                                                }
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                        (command.AndOr
                                                          children: [
                                                            (command.Simple
                                                              blame_tok: 
                                                                <Id.VSub_DollarName '$opt_dry_run'>
                                                              more_env: []
                                                              words: [
                                                                {($ Id.VSub_DollarName opt_dry_run)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <Id.VSub_DollarName '$RM'>
                                                              more_env: []
                                                              words: [
                                                                {($ Id.VSub_DollarName RM)}
                                                                {<conftest>}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          ops: [<Id.Op_DPipe _>]
                                                        )
                                                        (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.VSub_DollarName 
'$LTCC'
                                                                            >
                                                                          more_env: []
                                                                          words: [
                                                                            {
                                                                              ($ Id.VSub_DollarName 
LTCC
                                                                              )
                                                                            }
                                                                            {
                                                                              ($ Id.VSub_DollarName 
LTCFLAGS
                                                                              )
                                                                            }
                                                                            {<-o>}
                                                                            {<conftest>}
                                                                            {<conftest.c>}
                                                                            {
                                                                              ($ Id.VSub_DollarName i)
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                      terminator: <Id.Op_Semi _>
                                                                    )
                                                                  ]
                                                                )
                                                              then_kw: <Id.KW_Then then>
                                                              action: [
                                                                (command.ShAssignment
                                                                  left: 
                                                                    <Id.Lit_VarLike 'ldd_output='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'ldd_output='
                                                                        >
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'ldd_output='
                                                                            >
                                                                          name: ldd_output
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (CommandSub
                                                                            left_token: 
                                                                              <Id.Left_Backtick '`'>
                                                                            child: 
                                                                              (command.Simple
                                                                                blame_tok: <ldd>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<ldd>}
                                                                                  {<conftest>}
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                            right: 
                                                                              <Id.Backtick_Right '`'>
                                                                          )
                                                                        }
                                                                    )
                                                                  ]
                                                                  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: <test>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<test>}
                                                                                    {<yes>}
                                                                                    {
                                                                                      <
Id.Lit_Equals '='
                                                                                      >
                                                                                    }
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName allow_libtool_libs_with_static_runtimes
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                              terminator: 
                                                                                <Id.Op_Semi _>
                                                                            )
                                                                          ]
                                                                        )
                                                                      then_kw: <Id.KW_Then then>
                                                                      action: [
                                                                        (command.Case
                                                                          case_kw: <Id.KW_Case case>
                                                                          to_match: 
                                                                            (case_arg.Word
                                                                              w: 
                                                                                {
                                                                                  (DQ <' '> 
                                                                                    ($ 
Id.VSub_DollarName predeps
                                                                                    ) <' '> ($ Id.VSub_DollarName postdeps) <' '>
                                                                                  )
                                                                                }
                                                                            )
                                                                          arms_start: <Id.KW_In in>
                                                                          arms: [
                                                                            (CaseArm
                                                                              left: <Id.Lit_Star '*'>
                                                                              pattern: 
                                                                                (pat.Words
                                                                                  words: [
                                                                                    {
                                                                                      <Id.Lit_Star 
'*'
                                                                                      > (DQ <' '> ($ Id.VSub_DollarName i) <' '>) <Id.Lit_Star '*'>
                                                                                    }
                                                                                  ]
                                                                                )
                                                                              middle: 
                                                                                <Id.Right_CasePat _>
                                                                              action: [
                                                                                (command.Simple
                                                                                  blame_tok: 
                                                                                    <func_append>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<func_append>}
                                                                                    {<newdeplibs>}
                                                                                    {
                                                                                      (DQ <' '> 
                                                                                        ($ 
Id.VSub_DollarName i
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                                (command.ShAssignment
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'i='
                                                                                    >
                                                                                  pairs: [
                                                                                    (AssignPair
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'i='
                                                                                        >
                                                                                      lhs: 
                                                                                        (sh_lhs_expr.Name
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'i='
                                                                                            >
                                                                                          name: i
                                                                                        )
                                                                                      op: 
assign_op.Equal
                                                                                      rhs: (rhs_word__Empty)
                                                                                    )
                                                                                  ]
                                                                                  redirects: []
                                                                                )
                                                                              ]
                                                                              right: <Id.Op_DSemi _>
                                                                            )
                                                                          ]
                                                                          arms_end: <Id.KW_Esac esac>
                                                                          redirects: []
                                                                        )
                                                                      ]
                                                                      spids: [47652 47665]
                                                                    )
                                                                  ]
                                                                  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: <test>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<test>}
                                                                                    {<-n>}
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName i
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                              terminator: 
                                                                                <Id.Op_Semi _>
                                                                            )
                                                                          ]
                                                                        )
                                                                      then_kw: <Id.KW_Then then>
                                                                      action: [
                                                                        (command.ShAssignment
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'libname='
                                                                            >
                                                                          pairs: [
                                                                            (AssignPair
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'libname='
                                                                                >
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'libname='
                                                                                    >
                                                                                  name: libname
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: 
                                                                                {
                                                                                  (CommandSub
                                                                                    left_token: 
                                                                                      <
Id.Left_Backtick '`'
                                                                                      >
                                                                                    child: 
                                                                                      (command.Simple
                                                                                        blame_tok: 
                                                                                          <eval>
                                                                                        more_env: []
                                                                                        words: [
                                                                                          {<eval>}
                                                                                          {
                                                                                            (DQ 
                                                                                              (word_part.EscapedLiteral
                                                                                                token: 
                                                                                                  <
Id.Lit_EscapedChar '\\$'
                                                                                                  >
                                                                                                ch: 
'$'
                                                                                              ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                                                              ($ 
Id.VSub_DollarName libname_spec
                                                                                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                                            )
                                                                                          }
                                                                                        ]
                                                                                        redirects: []
                                                                                        do_fork: T
                                                                                      )
                                                                                    right: 
                                                                                      <
Id.Backtick_Right '`'
                                                                                      >
                                                                                  )
                                                                                }
                                                                            )
                                                                          ]
                                                                          redirects: []
                                                                        )
                                                                        (command.ShAssignment
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'deplib_matches='
                                                                            >
                                                                          pairs: [
                                                                            (AssignPair
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'deplib_matches='
                                                                                >
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'deplib_matches='
                                                                                    >
                                                                                  name: 
deplib_matches
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: 
                                                                                {
                                                                                  (CommandSub
                                                                                    left_token: 
                                                                                      <
Id.Left_Backtick '`'
                                                                                      >
                                                                                    child: 
                                                                                      (command.Simple
                                                                                        blame_tok: 
                                                                                          <eval>
                                                                                        more_env: []
                                                                                        words: [
                                                                                          {<eval>}
                                                                                          {
                                                                                            (DQ 
                                                                                              (word_part.EscapedLiteral
                                                                                                token: 
                                                                                                  <
Id.Lit_EscapedChar '\\$'
                                                                                                  >
                                                                                                ch: 
'$'
                                                                                              ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                                                              ($ 
Id.VSub_DollarName library_names_spec
                                                                                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                                            )
                                                                                          }
                                                                                        ]
                                                                                        redirects: []
                                                                                        do_fork: T
                                                                                      )
                                                                                    right: 
                                                                                      <
Id.Backtick_Right '`'
                                                                                      >
                                                                                  )
                                                                                }
                                                                            )
                                                                          ]
                                                                          redirects: []
                                                                        )
                                                                        (command.Sentence
                                                                          child: 
                                                                            (command.Simple
                                                                              blame_tok: <set>
                                                                              more_env: []
                                                                              words: [
                                                                                {<set>}
                                                                                {<dummy>}
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName deplib_matches
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                        (command.Simple
                                                                          blame_tok: <shift>
                                                                          more_env: []
                                                                          words: [{<shift>}]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                        (command.ShAssignment
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'deplib_match='
                                                                            >
                                                                          pairs: [
                                                                            (AssignPair
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'deplib_match='
                                                                                >
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'deplib_match='
                                                                                    >
                                                                                  name: deplib_match
                                                                                )
                                                                              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: 
                                                                                            <test>
                                                                                          more_env: []
                                                                                          words: [
                                                                                            {<test>}
                                                                                            {
                                                                                              (CommandSub
                                                                                                left_token: 
                                                                                                  <
Id.Left_Backtick '`'
                                                                                                  >
                                                                                                child: 
                                                                                                  (command.Simple
                                                                                                    blame_tok: 
                                                                                                      <
expr
                                                                                                      >
                                                                                                    more_env: []
                                                                                                    words: [
                                                                                                      {
                                                                                                        <
expr
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        (DQ 
                                                                                                          ($ 
Id.VSub_DollarName ldd_output
                                                                                                          )
                                                                                                        )
                                                                                                      }
                                                                                                      {
                                                                                                        <
Id.Lit_Colon ':'
                                                                                                        >
                                                                                                      }
                                                                                                      {
                                                                                                        (DQ 
                                                                                                          <
'.*'
                                                                                                          > ($ Id.VSub_DollarName deplib_match)
                                                                                                        )
                                                                                                      }
                                                                                                    ]
                                                                                                    redirects: []
                                                                                                    do_fork: 
T
                                                                                                  )
                                                                                                right: 
                                                                                                  <
Id.Backtick_Right '`'
                                                                                                  >
                                                                                              )
                                                                                            }
                                                                                            {<-ne>}
                                                                                            {<0>}
                                                                                          ]
                                                                                          redirects: []
                                                                                          do_fork: T
                                                                                        )
                                                                                      terminator: 
                                                                                        <Id.Op_Semi 
_
                                                                                        >
                                                                                    )
                                                                                  ]
                                                                                )
                                                                              then_kw: 
                                                                                <Id.KW_Then then>
                                                                              action: [
                                                                                (command.Simple
                                                                                  blame_tok: 
                                                                                    <func_append>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<func_append>}
                                                                                    {<newdeplibs>}
                                                                                    {
                                                                                      (DQ <' '> 
                                                                                        ($ 
Id.VSub_DollarName i
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                              ]
                                                                              spids: [47785 47811]
                                                                            )
                                                                          ]
                                                                          else_kw: <Id.KW_Else else>
                                                                          else_action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'droppeddeps='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'droppeddeps='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'droppeddeps='
                                                                                        >
                                                                                      name: 
droppeddeps
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: {<yes>}
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <echo>
                                                                              more_env: []
                                                                              words: [{<echo>}]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: 
                                                                                <Id.VSub_DollarName 
'$ECHO'
                                                                                >
                                                                              more_env: []
                                                                              words: [
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName ECHO
                                                                                  )
                                                                                }
                                                                                {
                                                                                  (DQ 
                                                                                    <
'*** Warning: dynamic linker does not accept needed library '
                                                                                    > ($ Id.VSub_DollarName i) <.>
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <echo>
                                                                              more_env: []
                                                                              words: [
                                                                                {<echo>}
                                                                                {
                                                                                  (DQ 
                                                                                    <
'*** I have the capability to make that library automatically link in when'
                                                                                    >
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <echo>
                                                                              more_env: []
                                                                              words: [
                                                                                {<echo>}
                                                                                {
                                                                                  (DQ 
                                                                                    <
'*** you link to this library.  But I can only do this if you have a'
                                                                                    >
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <echo>
                                                                              more_env: []
                                                                              words: [
                                                                                {<echo>}
                                                                                {
                                                                                  (DQ 
                                                                                    <
'*** shared version of the library, which you do not appear to have'
                                                                                    >
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <echo>
                                                                              more_env: []
                                                                              words: [
                                                                                {<echo>}
                                                                                {
                                                                                  (DQ 
                                                                                    <
'*** because a test_compile did reveal that the linker did not use this one'
                                                                                    >
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: <echo>
                                                                              more_env: []
                                                                              words: [
                                                                                {<echo>}
                                                                                {
                                                                                  (DQ 
                                                                                    <
'*** as a dynamic dependency that programs can get resolved with at runtime.'
                                                                                    >
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          fi_kw: <Id.KW_Fi fi>
                                                                          redirects: []
                                                                        )
                                                                      ]
                                                                      spids: [47713 47724]
                                                                    )
                                                                  ]
                                                                  else_action: []
                                                                  fi_kw: <Id.KW_Fi fi>
                                                                  redirects: []
                                                                )
                                                              ]
                                                              spids: [47624 47639]
                                                            )
                                                          ]
                                                          else_kw: <Id.KW_Else else>
                                                          else_action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'droppeddeps='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 'droppeddeps='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'droppeddeps='
                                                                        >
                                                                      name: droppeddeps
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<yes>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [{<echo>}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                              more_env: []
                                                              words: [
                                                                {($ Id.VSub_DollarName ECHO)}
                                                                {
                                                                  (DQ <'*** Warning!  Library '> 
                                                                    ($ Id.VSub_DollarName i) <' is needed by this library but I was not able to'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ 
                                                                    <
'*** make it link in!  You will probably need to install it or some'
                                                                    >
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ 
                                                                    <
'*** library that it depends on before this library will be fully'
                                                                    >
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ 
                                                                    <
'*** functional.  Installing it before continuing would be even better.'
                                                                    >
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          fi_kw: <Id.KW_Fi fi>
                                                          redirects: []
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                    (CaseArm
                                                      left: <Id.Lit_Star '*'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [{<Id.Lit_Star '*'>}]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <func_append>
                                                          more_env: []
                                                          words: [
                                                            {<func_append>}
                                                            {<newdeplibs>}
                                                            {(DQ <' '> ($ Id.VSub_DollarName i))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                              ]
                                              right: <Id.KW_Done done>
                                            )
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <file_magic>
                                  pattern: (pat.Words words:[{<file_magic> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          blame_tok: <set>
                                          more_env: []
                                          words: [
                                            {<set>}
                                            {<dummy>}
                                            {($ Id.VSub_DollarName deplibs_check_method)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (command.Simple
                                      blame_tok: <shift>
                                      more_env: []
                                      words: [{<shift>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'file_magic_regex='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'file_magic_regex='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'file_magic_regex='>
                                              name: file_magic_regex
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <expr>
                                                    more_env: []
                                                    words: [
                                                      {<expr>}
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName deplibs_check_method)
                                                        )
                                                      }
                                                      {<Id.Lit_Colon ':'>}
                                                      {
                                                        (DQ ($ Id.VSub_Number 1) <' '> 
                                                          <Id.Lit_BadBackslash '\\'> <'(.*'> <Id.Lit_BadBackslash '\\'> <')'>
                                                        )
                                                      }
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [a_deplib]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName deplibs)}]
                                        )
                                      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 a_deplib)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <-l>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<-l> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_stripname>
                                                      more_env: []
                                                      words: [
                                                        {<func_stripname>}
                                                        {<-l>}
                                                        {(SQ )}
                                                        {(DQ ($ Id.VSub_DollarName a_deplib))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'name='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'name='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'name='>
                                                              name: name
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName 
func_stripname_result
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      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: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<yes>}
                                                                        {<Id.Lit_Equals '='>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
allow_libtool_libs_with_static_runtimes
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: 
                                                                    {
                                                                      (DQ <' '> 
                                                                        ($ Id.VSub_DollarName predeps) <' '> ($ Id.VSub_DollarName postdeps) <' '>
                                                                      )
                                                                    }
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Star '*'> 
                                                                          (DQ <' '> 
                                                                            ($ Id.VSub_DollarName 
a_deplib
                                                                            ) <' '>
                                                                          ) <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <func_append>
                                                                      more_env: []
                                                                      words: [
                                                                        {<func_append>}
                                                                        {<newdeplibs>}
                                                                        {
                                                                          (DQ <' '> 
                                                                            ($ Id.VSub_DollarName 
a_deplib
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 'a_deplib='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'a_deplib='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'a_deplib='
                                                                                >
                                                                              name: a_deplib
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: (rhs_word__Empty)
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [48041 48054]
                                                        )
                                                      ]
                                                      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: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<-n>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
a_deplib
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'libname='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'libname='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'libname='>
                                                                      name: libname
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.Simple
                                                                            blame_tok: <eval>
                                                                            more_env: []
                                                                            words: [
                                                                              {<eval>}
                                                                              {
                                                                                (DQ 
                                                                                  (word_part.EscapedLiteral
                                                                                    token: 
                                                                                      <
Id.Lit_EscapedChar '\\$'
                                                                                      >
                                                                                    ch: '$'
                                                                                  ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                                                  ($ 
Id.VSub_DollarName libname_spec
                                                                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                                )
                                                                              }
                                                                            ]
                                                                            redirects: []
                                                                            do_fork: T
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              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: <test>
                                                                              more_env: []
                                                                              words: [
                                                                                {<test>}
                                                                                {<-n>}
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName file_magic_glob
                                                                                    )
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'libnameglob='
                                                                        >
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'libnameglob='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'libnameglob='
                                                                                >
                                                                              name: libnameglob
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (CommandSub
                                                                                left_token: 
                                                                                  <Id.Left_Backtick 
'`'
                                                                                  >
                                                                                child: 
                                                                                  (command.Pipeline
                                                                                    children: [
                                                                                      (command.Simple
                                                                                        blame_tok: 
                                                                                          <
func_echo_all
                                                                                          >
                                                                                        more_env: []
                                                                                        words: [
                                                                                          {
                                                                                            <
func_echo_all
                                                                                            >
                                                                                          }
                                                                                          {
                                                                                            (DQ 
                                                                                              ($ 
Id.VSub_DollarName libname
                                                                                              )
                                                                                            )
                                                                                          }
                                                                                        ]
                                                                                        redirects: []
                                                                                        do_fork: T
                                                                                      )
                                                                                      (command.Simple
                                                                                        blame_tok: 
                                                                                          <
Id.VSub_DollarName '$SED'
                                                                                          >
                                                                                        more_env: []
                                                                                        words: [
                                                                                          {
                                                                                            ($ 
Id.VSub_DollarName SED
                                                                                            )
                                                                                          }
                                                                                          {<-e>}
                                                                                          {
                                                                                            ($ 
Id.VSub_DollarName file_magic_glob
                                                                                            )
                                                                                          }
                                                                                        ]
                                                                                        redirects: []
                                                                                        do_fork: T
                                                                                      )
                                                                                    ]
                                                                                    ops: [
                                                                                      <Id.Op_Pipe _>
                                                                                    ]
                                                                                  )
                                                                                right: 
                                                                                  <
Id.Backtick_Right '`'
                                                                                  >
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [48138 48149]
                                                                )
                                                              ]
                                                              else_kw: <Id.KW_Else else>
                                                              else_action: [
                                                                (command.ShAssignment
                                                                  left: 
                                                                    <Id.Lit_VarLike 'libnameglob='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'libnameglob='
                                                                        >
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'libnameglob='
                                                                            >
                                                                          name: libnameglob
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
libname
                                                                          )
                                                                        }
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                              ]
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                            (command.AndOr
                                                              children: [
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<yes>}
                                                                    {<Id.Lit_Equals '='>}
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
want_nocaseglob
                                                                        )
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.ShAssignment
                                                                  left: 
                                                                    <Id.Lit_VarLike 'nocaseglob='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'nocaseglob='
                                                                        >
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'nocaseglob='
                                                                            >
                                                                          name: nocaseglob
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (CommandSub
                                                                            left_token: 
                                                                              <Id.Left_Backtick '`'>
                                                                            child: 
                                                                              (command.Simple
                                                                                blame_tok: <shopt>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<shopt>}
                                                                                  {<-p>}
                                                                                  {<nocaseglob>}
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                            right: 
                                                                              <Id.Backtick_Right '`'>
                                                                          )
                                                                        }
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                              ]
                                                              ops: [<Id.Op_DAmp _>]
                                                            )
                                                            (command.ForEach
                                                              keyword: <Id.KW_For for>
                                                              iter_names: [i]
                                                              iterable: 
                                                                (for_iter.Words
                                                                  words: [
                                                                    {
                                                                      ($ Id.VSub_DollarName 
lib_search_path
                                                                      )
                                                                    }
                                                                    {
                                                                      ($ Id.VSub_DollarName 
sys_lib_search_path
                                                                      )
                                                                    }
                                                                    {
                                                                      ($ Id.VSub_DollarName 
shlib_search_path
                                                                      )
                                                                    }
                                                                  ]
                                                                )
                                                              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: 
                                                                                        <test>
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {<test>}
                                                                                        {<yes>}
                                                                                        {
                                                                                          <
Id.Lit_Equals '='
                                                                                          >
                                                                                        }
                                                                                        {
                                                                                          (DQ 
                                                                                            ($ 
Id.VSub_DollarName want_nocaseglob
                                                                                            )
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                  terminator: 
                                                                                    <Id.Op_Semi _>
                                                                                )
                                                                              ]
                                                                            )
                                                                          then_kw: <Id.KW_Then then>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: <shopt>
                                                                              more_env: []
                                                                              words: [
                                                                                {<shopt>}
                                                                                {<-s>}
                                                                                {<nocaseglob>}
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'potential_libs='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'potential_libs='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'potential_libs='
                                                                                        >
                                                                                      name: 
potential_libs
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (CommandSub
                                                                                        left_token: 
                                                                                          <
Id.Left_Backtick '`'
                                                                                          >
                                                                                        child: 
                                                                                          (command.Simple
                                                                                            blame_tok: 
                                                                                              <ls>
                                                                                            more_env: []
                                                                                            words: [
                                                                                              {<ls>}
                                                                                              {
                                                                                                ($ 
Id.VSub_DollarName i
                                                                                                ) <'/'> ($ Id.VSub_DollarName libnameglob) <Id.Lit_LBracket '['> <.-> <Id.Lit_RBracket ']'> 
                                                                                                <
Id.Lit_Star '*'
                                                                                                >
                                                                                              }
                                                                                            ]
                                                                                            redirects: [
                                                                                              (Redir
                                                                                                op: 
                                                                                                  <
Id.Redir_Great '2>'
                                                                                                  >
                                                                                                loc: 
                                                                                                  (redir_loc.Fd
                                                                                                    fd: 
2
                                                                                                  )
                                                                                                arg: 
                                                                                                  {
                                                                                                    <
'/dev/null'
                                                                                                    >
                                                                                                  }
                                                                                              )
                                                                                            ]
                                                                                            do_fork: 
T
                                                                                          )
                                                                                        right: 
                                                                                          <
Id.Backtick_Right '`'
                                                                                          >
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: 
                                                                                <Id.VSub_DollarName 
'$nocaseglob'
                                                                                >
                                                                              more_env: []
                                                                              words: [
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName nocaseglob
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          spids: [48222 48235]
                                                                        )
                                                                      ]
                                                                      else_kw: <Id.KW_Else else>
                                                                      else_action: [
                                                                        (command.ShAssignment
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'potential_libs='
                                                                            >
                                                                          pairs: [
                                                                            (AssignPair
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'potential_libs='
                                                                                >
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'potential_libs='
                                                                                    >
                                                                                  name: 
potential_libs
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: 
                                                                                {
                                                                                  (CommandSub
                                                                                    left_token: 
                                                                                      <
Id.Left_Backtick '`'
                                                                                      >
                                                                                    child: 
                                                                                      (command.Simple
                                                                                        blame_tok: 
                                                                                          <ls>
                                                                                        more_env: []
                                                                                        words: [
                                                                                          {<ls>}
                                                                                          {
                                                                                            ($ 
Id.VSub_DollarName i
                                                                                            ) <'/'> ($ Id.VSub_DollarName libnameglob) <Id.Lit_LBracket '['> <.-> <Id.Lit_RBracket ']'> 
                                                                                            <
Id.Lit_Star '*'
                                                                                            >
                                                                                          }
                                                                                        ]
                                                                                        redirects: [
                                                                                          (Redir
                                                                                            op: 
                                                                                              <
Id.Redir_Great '2>'
                                                                                              >
                                                                                            loc: 
                                                                                              (redir_loc.Fd
                                                                                                fd: 
2
                                                                                              )
                                                                                            arg: 
                                                                                              {
                                                                                                <
'/dev/null'
                                                                                                >
                                                                                              }
                                                                                          )
                                                                                        ]
                                                                                        do_fork: T
                                                                                      )
                                                                                    right: 
                                                                                      <
Id.Backtick_Right '`'
                                                                                      >
                                                                                  )
                                                                                }
                                                                            )
                                                                          ]
                                                                          redirects: []
                                                                        )
                                                                      ]
                                                                      fi_kw: <Id.KW_Fi fi>
                                                                      redirects: []
                                                                    )
                                                                    (command.ForEach
                                                                      keyword: <Id.KW_For for>
                                                                      iter_names: [potent_lib]
                                                                      iterable: 
                                                                        (for_iter.Words
                                                                          words: [
                                                                            {
                                                                              ($ Id.VSub_DollarName 
potential_libs
                                                                              )
                                                                            }
                                                                          ]
                                                                        )
                                                                      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.Pipeline
                                                                                              children: [
                                                                                                (command.Simple
                                                                                                  blame_tok: 
                                                                                                    <
ls
                                                                                                    >
                                                                                                  more_env: []
                                                                                                  words: [
                                                                                                    {
                                                                                                      <
ls
                                                                                                      >
                                                                                                    }
                                                                                                    {
                                                                                                      <
-lLd
                                                                                                      >
                                                                                                    }
                                                                                                    {
                                                                                                      (DQ 
                                                                                                        ($ 
Id.VSub_DollarName potent_lib
                                                                                                        )
                                                                                                      )
                                                                                                    }
                                                                                                  ]
                                                                                                  redirects: [
                                                                                                    (Redir
                                                                                                      op: 
                                                                                                        <
Id.Redir_Great '2>'
                                                                                                        >
                                                                                                      loc: 
                                                                                                        (redir_loc.Fd
                                                                                                          fd: 
2
                                                                                                        )
                                                                                                      arg: 
                                                                                                        {
                                                                                                          <
'/dev/null'
                                                                                                          >
                                                                                                        }
                                                                                                    )
                                                                                                  ]
                                                                                                  do_fork: 
T
                                                                                                )
                                                                                                (command.Simple
                                                                                                  blame_tok: 
                                                                                                    <
Id.VSub_DollarName '$GREP'
                                                                                                    >
                                                                                                  more_env: []
                                                                                                  words: [
                                                                                                    {
                                                                                                      ($ 
Id.VSub_DollarName GREP
                                                                                                      )
                                                                                                    }
                                                                                                    {
                                                                                                      (DQ 
                                                                                                        <
' -> '
                                                                                                        >
                                                                                                      )
                                                                                                    }
                                                                                                  ]
                                                                                                  redirects: [
                                                                                                    (Redir
                                                                                                      op: 
                                                                                                        <
Id.Redir_Great '>'
                                                                                                        >
                                                                                                      loc: 
                                                                                                        (redir_loc.Fd
                                                                                                          fd: 
1
                                                                                                        )
                                                                                                      arg: 
                                                                                                        {
                                                                                                          <
'/dev/null'
                                                                                                          >
                                                                                                        }
                                                                                                    )
                                                                                                  ]
                                                                                                  do_fork: 
T
                                                                                                )
                                                                                              ]
                                                                                              ops: [
                                                                                                <
Id.Op_Pipe _
                                                                                                >
                                                                                              ]
                                                                                            )
                                                                                          terminator: 
                                                                                            <
Id.Op_Semi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  then_kw: 
                                                                                    <Id.KW_Then then>
                                                                                  action: [
                                                                                    (command.ControlFlow
                                                                                      keyword: 
                                                                                        <
Id.ControlFlow_Continue continue
                                                                                        >
                                                                                    )
                                                                                  ]
                                                                                  spids: [48308 48334]
                                                                                )
                                                                              ]
                                                                              else_action: []
                                                                              fi_kw: <Id.KW_Fi fi>
                                                                              redirects: []
                                                                            )
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'potlib='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'potlib='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'potlib='
                                                                                        >
                                                                                      name: potlib
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName potent_lib
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.WhileUntil
                                                                              keyword: 
                                                                                <Id.KW_While while>
                                                                              cond: 
                                                                                (condition.Shell
                                                                                  commands: [
                                                                                    (command.Sentence
                                                                                      child: 
                                                                                        (command.Simple
                                                                                          blame_tok: 
                                                                                            <test>
                                                                                          more_env: []
                                                                                          words: [
                                                                                            {<test>}
                                                                                            {<-h>}
                                                                                            {
                                                                                              (DQ 
                                                                                                ($ 
Id.VSub_DollarName potlib
                                                                                                )
                                                                                              )
                                                                                            }
                                                                                          ]
                                                                                          redirects: [
                                                                                            (Redir
                                                                                              op: 
                                                                                                <
Id.Redir_Great '2>'
                                                                                                >
                                                                                              loc: 
                                                                                                (redir_loc.Fd
                                                                                                  fd: 
2
                                                                                                )
                                                                                              arg: 
                                                                                                {
                                                                                                  <
'/dev/null'
                                                                                                  >
                                                                                                }
                                                                                            )
                                                                                          ]
                                                                                          do_fork: T
                                                                                        )
                                                                                      terminator: 
                                                                                        <Id.Op_Semi 
_
                                                                                        >
                                                                                    )
                                                                                  ]
                                                                                )
                                                                              body: 
                                                                                (command.DoGroup
                                                                                  left: <Id.KW_Do do>
                                                                                  children: [
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'potliblink='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'potliblink='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'potliblink='
                                                                                                >
                                                                                              name: 
potliblink
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (CommandSub
                                                                                                left_token: 
                                                                                                  <
Id.Left_Backtick '`'
                                                                                                  >
                                                                                                child: 
                                                                                                  (command.Pipeline
                                                                                                    children: [
                                                                                                      (command.Simple
                                                                                                        blame_tok: 
                                                                                                          <
ls
                                                                                                          >
                                                                                                        more_env: []
                                                                                                        words: [
                                                                                                          {
                                                                                                            <
ls
                                                                                                            >
                                                                                                          }
                                                                                                          {
                                                                                                            <
-ld
                                                                                                            >
                                                                                                          }
                                                                                                          {
                                                                                                            ($ 
Id.VSub_DollarName potlib
                                                                                                            )
                                                                                                          }
                                                                                                        ]
                                                                                                        redirects: []
                                                                                                        do_fork: 
T
                                                                                                      )
                                                                                                      (command.Simple
                                                                                                        blame_tok: 
                                                                                                          <
Id.VSub_DollarName '$SED'
                                                                                                          >
                                                                                                        more_env: []
                                                                                                        words: [
                                                                                                          {
                                                                                                            ($ 
Id.VSub_DollarName SED
                                                                                                            )
                                                                                                          }
                                                                                                          {
                                                                                                            (SQ 
                                                                                                              <
's/.* -> //'
                                                                                                              >
                                                                                                            )
                                                                                                          }
                                                                                                        ]
                                                                                                        redirects: []
                                                                                                        do_fork: 
T
                                                                                                      )
                                                                                                    ]
                                                                                                    ops: [
                                                                                                      <
Id.Op_Pipe _
                                                                                                      >
                                                                                                    ]
                                                                                                  )
                                                                                                right: 
                                                                                                  <
Id.Backtick_Right '`'
                                                                                                  >
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.Case
                                                                                      case_kw: 
                                                                                        <Id.KW_Case 
case
                                                                                        >
                                                                                      to_match: 
                                                                                        (case_arg.Word
                                                                                          w: 
                                                                                            {
                                                                                              ($ 
Id.VSub_DollarName potliblink
                                                                                              )
                                                                                            }
                                                                                        )
                                                                                      arms_start: 
                                                                                        <Id.KW_In in>
                                                                                      arms: [
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.Lit_LBracket '['
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  <
Id.Lit_LBracket '['
                                                                                                  > (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'/'> <Id.Lit_RBracket ']'> 
                                                                                                  <
Id.Lit_Star '*'
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  <
Id.Lit_LBracket '['
                                                                                                  > <A-Za-z> <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> 
                                                                                                  (word_part.EscapedLiteral
                                                                                                    token: 
                                                                                                      <
Id.Lit_EscapedChar '\\\\'
                                                                                                      >
                                                                                                    ch: 
'\\'
                                                                                                  ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.ShAssignment
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'potlib='
                                                                                                >
                                                                                              pairs: [
                                                                                                (AssignPair
                                                                                                  left: 
                                                                                                    <
Id.Lit_VarLike 'potlib='
                                                                                                    >
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'potlib='
                                                                                                        >
                                                                                                      name: 
potlib
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      ($ 
Id.VSub_DollarName potliblink
                                                                                                      )
                                                                                                    }
                                                                                                )
                                                                                              ]
                                                                                              redirects: []
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                        (CaseArm
                                                                                          left: 
                                                                                            <
Id.Lit_Star '*'
                                                                                            >
                                                                                          pattern: 
                                                                                            (pat.Words
                                                                                              words: [
                                                                                                {
                                                                                                  <
Id.Lit_Star '*'
                                                                                                  >
                                                                                                }
                                                                                              ]
                                                                                            )
                                                                                          middle: 
                                                                                            <
Id.Right_CasePat _
                                                                                            >
                                                                                          action: [
                                                                                            (command.ShAssignment
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'potlib='
                                                                                                >
                                                                                              pairs: [
                                                                                                (AssignPair
                                                                                                  left: 
                                                                                                    <
Id.Lit_VarLike 'potlib='
                                                                                                    >
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      left: 
                                                                                                        <
Id.Lit_VarLike 'potlib='
                                                                                                        >
                                                                                                      name: 
potlib
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      (CommandSub
                                                                                                        left_token: 
                                                                                                          <
Id.Left_Backtick '`'
                                                                                                          >
                                                                                                        child: 
                                                                                                          (command.Pipeline
                                                                                                            children: [
                                                                                                              (command.Simple
                                                                                                                blame_tok: 
                                                                                                                  <
Id.VSub_DollarName '$ECHO'
                                                                                                                  >
                                                                                                                more_env: []
                                                                                                                words: [
                                                                                                                  {
                                                                                                                    ($ 
Id.VSub_DollarName ECHO
                                                                                                                    )
                                                                                                                  }
                                                                                                                  {
                                                                                                                    (DQ 
                                                                                                                      ($ 
Id.VSub_DollarName potlib
                                                                                                                      )
                                                                                                                    )
                                                                                                                  }
                                                                                                                ]
                                                                                                                redirects: []
                                                                                                                do_fork: 
T
                                                                                                              )
                                                                                                              (command.Simple
                                                                                                                blame_tok: 
                                                                                                                  <
Id.VSub_DollarName '$SED'
                                                                                                                  >
                                                                                                                more_env: []
                                                                                                                words: [
                                                                                                                  {
                                                                                                                    ($ 
Id.VSub_DollarName SED
                                                                                                                    )
                                                                                                                  }
                                                                                                                  {
                                                                                                                    (SQ 
                                                                                                                      <
's|[^/]*$||'
                                                                                                                      >
                                                                                                                    )
                                                                                                                  }
                                                                                                                ]
                                                                                                                redirects: []
                                                                                                                do_fork: 
T
                                                                                                              )
                                                                                                            ]
                                                                                                            ops: [
                                                                                                              <
Id.Op_Pipe _
                                                                                                              >
                                                                                                            ]
                                                                                                          )
                                                                                                        right: 
                                                                                                          <
Id.Backtick_Right '`'
                                                                                                          >
                                                                                                      ) (DQ ($ Id.VSub_DollarName potliblink))
                                                                                                    }
                                                                                                )
                                                                                              ]
                                                                                              redirects: []
                                                                                            )
                                                                                          ]
                                                                                          right: 
                                                                                            <
Id.Op_DSemi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                      arms_end: 
                                                                                        <Id.KW_Esac 
esac
                                                                                        >
                                                                                      redirects: []
                                                                                    )
                                                                                  ]
                                                                                  right: 
                                                                                    <Id.KW_Done done>
                                                                                )
                                                                              redirects: []
                                                                            )
                                                                            (command.If
                                                                              if_kw: <Id.KW_If if>
                                                                              arms: [
                                                                                (IfArm
                                                                                  keyword: 
                                                                                    <Id.KW_If if>
                                                                                  cond: 
                                                                                    (condition.Shell
                                                                                      commands: [
                                                                                        (command.Sentence
                                                                                          child: 
                                                                                            (command.Pipeline
                                                                                              children: [
                                                                                                (command.Simple
                                                                                                  blame_tok: 
                                                                                                    <
eval
                                                                                                    >
                                                                                                  more_env: []
                                                                                                  words: [
                                                                                                    {
                                                                                                      <
eval
                                                                                                      >
                                                                                                    }
                                                                                                    {
                                                                                                      ($ 
Id.VSub_DollarName file_magic_cmd
                                                                                                      )
                                                                                                    }
                                                                                                    {
                                                                                                      (word_part.EscapedLiteral
                                                                                                        token: 
                                                                                                          <
Id.Lit_EscapedChar '\\"'
                                                                                                          >
                                                                                                        ch: 
'"'
                                                                                                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <potlib> 
                                                                                                      (word_part.EscapedLiteral
                                                                                                        token: 
                                                                                                          <
Id.Lit_EscapedChar '\\"'
                                                                                                          >
                                                                                                        ch: 
'"'
                                                                                                      )
                                                                                                    }
                                                                                                  ]
                                                                                                  redirects: [
                                                                                                    (Redir
                                                                                                      op: 
                                                                                                        <
Id.Redir_Great '2>'
                                                                                                        >
                                                                                                      loc: 
                                                                                                        (redir_loc.Fd
                                                                                                          fd: 
2
                                                                                                        )
                                                                                                      arg: 
                                                                                                        {
                                                                                                          <
'/dev/null'
                                                                                                          >
                                                                                                        }
                                                                                                    )
                                                                                                  ]
                                                                                                  do_fork: 
T
                                                                                                )
                                                                                                (command.Simple
                                                                                                  blame_tok: 
                                                                                                    <
Id.VSub_DollarName '$SED'
                                                                                                    >
                                                                                                  more_env: []
                                                                                                  words: [
                                                                                                    {
                                                                                                      ($ 
Id.VSub_DollarName SED
                                                                                                      )
                                                                                                    }
                                                                                                    {
                                                                                                      <
-e
                                                                                                      >
                                                                                                    }
                                                                                                    {
                                                                                                      <
10q
                                                                                                      >
                                                                                                    }
                                                                                                  ]
                                                                                                  redirects: []
                                                                                                  do_fork: 
T
                                                                                                )
                                                                                                (command.Simple
                                                                                                  blame_tok: 
                                                                                                    <
Id.VSub_DollarName '$EGREP'
                                                                                                    >
                                                                                                  more_env: []
                                                                                                  words: [
                                                                                                    {
                                                                                                      ($ 
Id.VSub_DollarName EGREP
                                                                                                      )
                                                                                                    }
                                                                                                    {
                                                                                                      (DQ 
                                                                                                        ($ 
Id.VSub_DollarName file_magic_regex
                                                                                                        )
                                                                                                      )
                                                                                                    }
                                                                                                  ]
                                                                                                  redirects: [
                                                                                                    (Redir
                                                                                                      op: 
                                                                                                        <
Id.Redir_Great '>'
                                                                                                        >
                                                                                                      loc: 
                                                                                                        (redir_loc.Fd
                                                                                                          fd: 
1
                                                                                                        )
                                                                                                      arg: 
                                                                                                        {
                                                                                                          <
'/dev/null'
                                                                                                          >
                                                                                                        }
                                                                                                    )
                                                                                                  ]
                                                                                                  do_fork: 
T
                                                                                                )
                                                                                              ]
                                                                                              ops: [
                                                                                                <
Id.Op_Pipe _
                                                                                                >
                                                                                                <
Id.Op_Pipe _
                                                                                                >
                                                                                              ]
                                                                                            )
                                                                                          terminator: 
                                                                                            <
Id.Op_Semi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  then_kw: 
                                                                                    <Id.KW_Then then>
                                                                                  action: [
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <
func_append
                                                                                        >
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {
                                                                                          <
func_append
                                                                                          >
                                                                                        }
                                                                                        {
                                                                                          <
newdeplibs
                                                                                          >
                                                                                        }
                                                                                        {
                                                                                          (DQ <' '> 
                                                                                            ($ 
Id.VSub_DollarName a_deplib
                                                                                            )
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'a_deplib='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'a_deplib='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'a_deplib='
                                                                                                >
                                                                                              name: 
a_deplib
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: (rhs_word__Empty)
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.ControlFlow
                                                                                      keyword: 
                                                                                        <
Id.ControlFlow_Break break
                                                                                        >
                                                                                      arg_word: {<2>}
                                                                                    )
                                                                                  ]
                                                                                  spids: [48468 48505]
                                                                                )
                                                                              ]
                                                                              else_action: []
                                                                              fi_kw: <Id.KW_Fi fi>
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.KW_Done done>
                                                                        )
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.KW_Done done>
                                                                )
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [48102 48113]
                                                        )
                                                      ]
                                                      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: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<-n>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
a_deplib
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'droppeddeps='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 'droppeddeps='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'droppeddeps='
                                                                        >
                                                                      name: droppeddeps
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<yes>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [{<echo>}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                              more_env: []
                                                              words: [
                                                                {($ Id.VSub_DollarName ECHO)}
                                                                {
                                                                  (DQ 
                                                                    <
'*** Warning: linker path does not have real file for library '
                                                                    > ($ Id.VSub_DollarName a_deplib) <.>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ 
                                                                    <
'*** I have the capability to make that library automatically link in when'
                                                                    >
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ 
                                                                    <
'*** you link to this library.  But I can only do this if you have a'
                                                                    >
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ 
                                                                    <
'*** shared version of the library, which you do not appear to have'
                                                                    >
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ 
                                                                    <
'*** because I did check the linker path looking for a file starting'
                                                                    >
                                                                  )
                                                                }
                                                              ]
                                                              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>}
                                                                                {<-z>}
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName potlib
                                                                                    )
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: 
                                                                        <Id.VSub_DollarName '$ECHO'>
                                                                      more_env: []
                                                                      words: [
                                                                        {($ Id.VSub_DollarName ECHO)}
                                                                        {
                                                                          (DQ <'*** with '> 
                                                                            ($ Id.VSub_DollarName 
libname
                                                                            ) <' but no candidates were found. (...for file magic test)'>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  spids: [48596 48607]
                                                                )
                                                              ]
                                                              else_kw: <Id.KW_Else else>
                                                              else_action: [
                                                                (command.Simple
                                                                  blame_tok: 
                                                                    <Id.VSub_DollarName '$ECHO'>
                                                                  more_env: []
                                                                  words: [
                                                                    {($ Id.VSub_DollarName ECHO)}
                                                                    {
                                                                      (DQ <'*** with '> 
                                                                        ($ Id.VSub_DollarName libname) <' and none of the candidates passed a file format test'>
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.Simple
                                                                  blame_tok: 
                                                                    <Id.VSub_DollarName '$ECHO'>
                                                                  more_env: []
                                                                  words: [
                                                                    {($ Id.VSub_DollarName ECHO)}
                                                                    {
                                                                      (DQ 
                                                                        <
'*** using a file magic. Last file checked: '
                                                                        > ($ Id.VSub_DollarName potlib)
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [48538 48549]
                                                        )
                                                      ]
                                                      else_action: []
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<newdeplibs>}
                                                        {(DQ <' '> ($ Id.VSub_DollarName a_deplib))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <match_pattern>
                                  pattern: (pat.Words words:[{<match_pattern> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          blame_tok: <set>
                                          more_env: []
                                          words: [
                                            {<set>}
                                            {<dummy>}
                                            {($ Id.VSub_DollarName deplibs_check_method)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (command.Simple
                                      blame_tok: <shift>
                                      more_env: []
                                      words: [{<shift>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'match_pattern_regex='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'match_pattern_regex='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'match_pattern_regex='>
                                              name: match_pattern_regex
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <expr>
                                                    more_env: []
                                                    words: [
                                                      {<expr>}
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName deplibs_check_method)
                                                        )
                                                      }
                                                      {<Id.Lit_Colon ':'>}
                                                      {
                                                        (DQ ($ Id.VSub_Number 1) <' '> 
                                                          <Id.Lit_BadBackslash '\\'> <'(.*'> <Id.Lit_BadBackslash '\\'> <')'>
                                                        )
                                                      }
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [a_deplib]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName deplibs)}]
                                        )
                                      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 a_deplib)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <-l>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<-l> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_stripname>
                                                      more_env: []
                                                      words: [
                                                        {<func_stripname>}
                                                        {<-l>}
                                                        {(SQ )}
                                                        {(DQ ($ Id.VSub_DollarName a_deplib))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'name='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'name='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'name='>
                                                              name: name
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName 
func_stripname_result
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      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: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<yes>}
                                                                        {<Id.Lit_Equals '='>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
allow_libtool_libs_with_static_runtimes
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: 
                                                                    {
                                                                      (DQ <' '> 
                                                                        ($ Id.VSub_DollarName predeps) <' '> ($ Id.VSub_DollarName postdeps) <' '>
                                                                      )
                                                                    }
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Star '*'> 
                                                                          (DQ <' '> 
                                                                            ($ Id.VSub_DollarName 
a_deplib
                                                                            ) <' '>
                                                                          ) <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: <func_append>
                                                                      more_env: []
                                                                      words: [
                                                                        {<func_append>}
                                                                        {<newdeplibs>}
                                                                        {
                                                                          (DQ <' '> 
                                                                            ($ Id.VSub_DollarName 
a_deplib
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 'a_deplib='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'a_deplib='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'a_deplib='
                                                                                >
                                                                              name: a_deplib
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: (rhs_word__Empty)
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [48763 48776]
                                                        )
                                                      ]
                                                      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: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<-n>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
a_deplib
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'libname='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'libname='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'libname='>
                                                                      name: libname
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.Simple
                                                                            blame_tok: <eval>
                                                                            more_env: []
                                                                            words: [
                                                                              {<eval>}
                                                                              {
                                                                                (DQ 
                                                                                  (word_part.EscapedLiteral
                                                                                    token: 
                                                                                      <
Id.Lit_EscapedChar '\\$'
                                                                                      >
                                                                                    ch: '$'
                                                                                  ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                                                  ($ 
Id.VSub_DollarName libname_spec
                                                                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                                )
                                                                              }
                                                                            ]
                                                                            redirects: []
                                                                            do_fork: T
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ForEach
                                                              keyword: <Id.KW_For for>
                                                              iter_names: [i]
                                                              iterable: 
                                                                (for_iter.Words
                                                                  words: [
                                                                    {
                                                                      ($ Id.VSub_DollarName 
lib_search_path
                                                                      )
                                                                    }
                                                                    {
                                                                      ($ Id.VSub_DollarName 
sys_lib_search_path
                                                                      )
                                                                    }
                                                                    {
                                                                      ($ Id.VSub_DollarName 
shlib_search_path
                                                                      )
                                                                    }
                                                                  ]
                                                                )
                                                              semi_tok: <Id.Op_Semi _>
                                                              body: 
                                                                (command.DoGroup
                                                                  left: <Id.KW_Do do>
                                                                  children: [
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'potential_libs='
                                                                        >
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'potential_libs='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'potential_libs='
                                                                                >
                                                                              name: potential_libs
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (CommandSub
                                                                                left_token: 
                                                                                  <Id.Left_Backtick 
'`'
                                                                                  >
                                                                                child: 
                                                                                  (command.Simple
                                                                                    blame_tok: <ls>
                                                                                    more_env: []
                                                                                    words: [
                                                                                      {<ls>}
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName i
                                                                                        ) <'/'> ($ Id.VSub_DollarName libname) <Id.Lit_LBracket '['> <.-> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                                      }
                                                                                    ]
                                                                                    redirects: [
                                                                                      (Redir
                                                                                        op: 
                                                                                          <
Id.Redir_Great '2>'
                                                                                          >
                                                                                        loc: 
                                                                                          (redir_loc.Fd
                                                                                            fd: 2
                                                                                          )
                                                                                        arg: 
                                                                                          {
                                                                                            <
'/dev/null'
                                                                                            >
                                                                                          }
                                                                                      )
                                                                                    ]
                                                                                    do_fork: T
                                                                                  )
                                                                                right: 
                                                                                  <
Id.Backtick_Right '`'
                                                                                  >
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.ForEach
                                                                      keyword: <Id.KW_For for>
                                                                      iter_names: [potent_lib]
                                                                      iterable: 
                                                                        (for_iter.Words
                                                                          words: [
                                                                            {
                                                                              ($ Id.VSub_DollarName 
potential_libs
                                                                              )
                                                                            }
                                                                          ]
                                                                        )
                                                                      semi_tok: <Id.Op_Semi _>
                                                                      body: 
                                                                        (command.DoGroup
                                                                          left: <Id.KW_Do do>
                                                                          children: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'potlib='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'potlib='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'potlib='
                                                                                        >
                                                                                      name: potlib
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName potent_lib
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (command.If
                                                                              if_kw: <Id.KW_If if>
                                                                              arms: [
                                                                                (IfArm
                                                                                  keyword: 
                                                                                    <Id.KW_If if>
                                                                                  cond: 
                                                                                    (condition.Shell
                                                                                      commands: [
                                                                                        (command.Sentence
                                                                                          child: 
                                                                                            (command.Pipeline
                                                                                              children: [
                                                                                                (command.Simple
                                                                                                  blame_tok: 
                                                                                                    <
eval
                                                                                                    >
                                                                                                  more_env: []
                                                                                                  words: [
                                                                                                    {
                                                                                                      <
eval
                                                                                                      >
                                                                                                    }
                                                                                                    {
                                                                                                      (DQ 
                                                                                                        (word_part.EscapedLiteral
                                                                                                          token: 
                                                                                                            <
Id.Lit_EscapedChar '\\$'
                                                                                                            >
                                                                                                          ch: 
'$'
                                                                                                        ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                                                                        ($ 
Id.VSub_DollarName potent_lib
                                                                                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                                                      )
                                                                                                    }
                                                                                                  ]
                                                                                                  redirects: [
                                                                                                    (Redir
                                                                                                      op: 
                                                                                                        <
Id.Redir_Great '2>'
                                                                                                        >
                                                                                                      loc: 
                                                                                                        (redir_loc.Fd
                                                                                                          fd: 
2
                                                                                                        )
                                                                                                      arg: 
                                                                                                        {
                                                                                                          <
'/dev/null'
                                                                                                          >
                                                                                                        }
                                                                                                    )
                                                                                                  ]
                                                                                                  do_fork: 
T
                                                                                                )
                                                                                                (command.Simple
                                                                                                  blame_tok: 
                                                                                                    <
Id.VSub_DollarName '$SED'
                                                                                                    >
                                                                                                  more_env: []
                                                                                                  words: [
                                                                                                    {
                                                                                                      ($ 
Id.VSub_DollarName SED
                                                                                                      )
                                                                                                    }
                                                                                                    {
                                                                                                      <
10q
                                                                                                      >
                                                                                                    }
                                                                                                  ]
                                                                                                  redirects: []
                                                                                                  do_fork: 
T
                                                                                                )
                                                                                                (command.Simple
                                                                                                  blame_tok: 
                                                                                                    <
Id.VSub_DollarName '$EGREP'
                                                                                                    >
                                                                                                  more_env: []
                                                                                                  words: [
                                                                                                    {
                                                                                                      ($ 
Id.VSub_DollarName EGREP
                                                                                                      )
                                                                                                    }
                                                                                                    {
                                                                                                      (DQ 
                                                                                                        ($ 
Id.VSub_DollarName match_pattern_regex
                                                                                                        )
                                                                                                      )
                                                                                                    }
                                                                                                  ]
                                                                                                  redirects: [
                                                                                                    (Redir
                                                                                                      op: 
                                                                                                        <
Id.Redir_Great '>'
                                                                                                        >
                                                                                                      loc: 
                                                                                                        (redir_loc.Fd
                                                                                                          fd: 
1
                                                                                                        )
                                                                                                      arg: 
                                                                                                        {
                                                                                                          <
'/dev/null'
                                                                                                          >
                                                                                                        }
                                                                                                    )
                                                                                                  ]
                                                                                                  do_fork: 
T
                                                                                                )
                                                                                              ]
                                                                                              ops: [
                                                                                                <
Id.Op_Pipe _
                                                                                                >
                                                                                                <
Id.Op_Pipe _
                                                                                                >
                                                                                              ]
                                                                                            )
                                                                                          terminator: 
                                                                                            <
Id.Op_Semi _
                                                                                            >
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  then_kw: 
                                                                                    <Id.KW_Then then>
                                                                                  action: [
                                                                                    (command.Simple
                                                                                      blame_tok: 
                                                                                        <
func_append
                                                                                        >
                                                                                      more_env: []
                                                                                      words: [
                                                                                        {
                                                                                          <
func_append
                                                                                          >
                                                                                        }
                                                                                        {
                                                                                          <
newdeplibs
                                                                                          >
                                                                                        }
                                                                                        {
                                                                                          (DQ <' '> 
                                                                                            ($ 
Id.VSub_DollarName a_deplib
                                                                                            )
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      redirects: []
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'a_deplib='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'a_deplib='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'a_deplib='
                                                                                                >
                                                                                              name: 
a_deplib
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: (rhs_word__Empty)
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.ControlFlow
                                                                                      keyword: 
                                                                                        <
Id.ControlFlow_Break break
                                                                                        >
                                                                                      arg_word: {<2>}
                                                                                    )
                                                                                  ]
                                                                                  spids: [48914 48950]
                                                                                )
                                                                              ]
                                                                              else_action: []
                                                                              fi_kw: <Id.KW_Fi fi>
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.KW_Done done>
                                                                        )
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.KW_Done done>
                                                                )
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [48824 48835]
                                                        )
                                                      ]
                                                      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: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<-n>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
a_deplib
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'droppeddeps='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 'droppeddeps='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'droppeddeps='
                                                                        >
                                                                      name: droppeddeps
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<yes>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [{<echo>}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                              more_env: []
                                                              words: [
                                                                {($ Id.VSub_DollarName ECHO)}
                                                                {
                                                                  (DQ 
                                                                    <
'*** Warning: linker path does not have real file for library '
                                                                    > ($ Id.VSub_DollarName a_deplib) <.>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ 
                                                                    <
'*** I have the capability to make that library automatically link in when'
                                                                    >
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ 
                                                                    <
'*** you link to this library.  But I can only do this if you have a'
                                                                    >
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ 
                                                                    <
'*** shared version of the library, which you do not appear to have'
                                                                    >
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ 
                                                                    <
'*** because I did check the linker path looking for a file starting'
                                                                    >
                                                                  )
                                                                }
                                                              ]
                                                              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>}
                                                                                {<-z>}
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName potlib
                                                                                    )
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.Simple
                                                                      blame_tok: 
                                                                        <Id.VSub_DollarName '$ECHO'>
                                                                      more_env: []
                                                                      words: [
                                                                        {($ Id.VSub_DollarName ECHO)}
                                                                        {
                                                                          (DQ <'*** with '> 
                                                                            ($ Id.VSub_DollarName 
libname
                                                                            ) <' but no candidates were found. (...for regex pattern test)'>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  spids: [49041 49052]
                                                                )
                                                              ]
                                                              else_kw: <Id.KW_Else else>
                                                              else_action: [
                                                                (command.Simple
                                                                  blame_tok: 
                                                                    <Id.VSub_DollarName '$ECHO'>
                                                                  more_env: []
                                                                  words: [
                                                                    {($ Id.VSub_DollarName ECHO)}
                                                                    {
                                                                      (DQ <'*** with '> 
                                                                        ($ Id.VSub_DollarName libname) <' and none of the candidates passed a file format test'>
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.Simple
                                                                  blame_tok: 
                                                                    <Id.VSub_DollarName '$ECHO'>
                                                                  more_env: []
                                                                  words: [
                                                                    {($ Id.VSub_DollarName ECHO)}
                                                                    {
                                                                      (DQ 
                                                                        <
'*** using a regex pattern. Last file checked: '
                                                                        > ($ Id.VSub_DollarName potlib)
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [48983 48994]
                                                        )
                                                      ]
                                                      else_action: []
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<newdeplibs>}
                                                        {(DQ <' '> ($ Id.VSub_DollarName a_deplib))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <none>
                                  pattern: 
                                    (pat.Words
                                      words: [{<none>} {<unknown>} {<Id.Lit_Star '*'>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'newdeplibs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'newdeplibs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'newdeplibs='>
                                              name: newdeplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'tmp_deplibs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'tmp_deplibs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'tmp_deplibs='>
                                              name: tmp_deplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName ECHO)}
                                                          {(DQ <' '> ($ Id.VSub_DollarName deplibs))}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName SED)}
                                                          {(SQ <'s/ -lc$//; s/ -[LR][^ ]*//g'>)}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<yes>}
                                                        {<Id.Lit_Equals '='>}
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
allow_libtool_libs_with_static_runtimes
                                                            )
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [i]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [
                                                    {($ Id.VSub_DollarName predeps)}
                                                    {($ Id.VSub_DollarName postdeps)}
                                                  ]
                                                )
                                              semi_tok: <Id.Op_Semi _>
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'tmp_deplibs='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'tmp_deplibs='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'tmp_deplibs='>
                                                              name: tmp_deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (command.Simple
                                                                        blame_tok: 
                                                                          <Id.VSub_DollarName 
'$ECHO'
                                                                          >
                                                                        more_env: []
                                                                        words: [
                                                                          {
                                                                            ($ Id.VSub_DollarName 
ECHO
                                                                            )
                                                                          }
                                                                          {
                                                                            (DQ <' '> 
                                                                              ($ Id.VSub_DollarName 
tmp_deplibs
                                                                              )
                                                                            )
                                                                          }
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                      (command.Simple
                                                                        blame_tok: 
                                                                          <Id.VSub_DollarName '$SED'>
                                                                        more_env: []
                                                                        words: [
                                                                          {
                                                                            ($ Id.VSub_DollarName SED)
                                                                          }
                                                                          {
                                                                            (DQ <'s|'> 
                                                                              ($ Id.VSub_DollarName i) <'||'>
                                                                            )
                                                                          }
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    ]
                                                                    ops: [<Id.Op_Pipe _>]
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                          ]
                                          spids: [49162 49175]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName tmp_deplibs)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                                                  <Id.KW_Bang '!'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\t'> ch:'\t') 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\ '>
                                                    ch: ' '
                                                  ) <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [{<echo>}]
                                              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>}
                                                                {<none>}
                                                                {<Id.Lit_Equals '='>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
deplibs_check_method
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [
                                                        {<echo>}
                                                        {
                                                          (DQ 
                                                            <
'*** Warning: inter-library dependencies are not supported in this platform.'
                                                            >
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [49245 49258]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.Simple
                                                  blame_tok: <echo>
                                                  more_env: []
                                                  words: [
                                                    {<echo>}
                                                    {
                                                      (DQ 
                                                        <
'*** Warning: inter-library dependencies are not known to be supported.'
                                                        >
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ 
                                                    <
'*** All declared inter-library dependencies are being dropped.'
                                                    >
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'droppeddeps='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'droppeddeps='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'droppeddeps='>
                                                      name: droppeddeps
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<yes>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'versuffix='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'versuffix='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'versuffix='>
                                      name: versuffix
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName versuffix_save)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'major='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'major='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'major='> name:major)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName major_save)}
                                )
                              ]
                              redirects: []
                            )
                            (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_DollarName release_save)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'libname='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'libname='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'libname='>
                                      name: libname
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName libname_save)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'name='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'name='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name='> name:name)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName name_save)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-rhapsody> 
                                          <Id.Lit_Star '*'>
                                        }
                                        {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-darwin1.> 
                                          <Id.Lit_LBracket '['> <012> <Id.Lit_RBracket ']'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'newdeplibs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'newdeplibs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'newdeplibs='>
                                              name: newdeplibs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName ECHO)}
                                                          {
                                                            (DQ <' '> 
                                                              ($ Id.VSub_DollarName newdeplibs)
                                                            )
                                                          }
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName SED)}
                                                          {(SQ <'s/ -lc / System.ltframework /'>)}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<yes>}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName droppeddeps))}
                                              ]
                                              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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<yes>}
                                                        {<Id.Lit_Equals '='>}
                                                        {(DQ ($ Id.VSub_DollarName module))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [{<echo>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ 
                                                    <
'*** Warning: libtool could not satisfy all declared inter-library'
                                                    >
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$ECHO'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName ECHO)}
                                                {
                                                  (DQ <'*** dependencies of module '> 
                                                    ($ Id.VSub_DollarName libname) <'.  Therefore, libtool will create'>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ 
                                                    <
'*** a static module, that should work as long as the dlopening'
                                                    >
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ 
                                                    <
'*** application is linked with the -dlopen flag.'
                                                    >
                                                  )
                                                }
                                              ]
                                              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>}
                                                                {<-z>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
global_symbol_pipe
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [{<echo>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [
                                                        {<echo>}
                                                        {
                                                          (DQ 
                                                            <
'*** However, this would only work if libtool was able to extract symbol'
                                                            >
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [
                                                        {<echo>}
                                                        {
                                                          (DQ 
                                                            <
'*** lists from a program, using \'nm\' or equivalent, but libtool could'
                                                            >
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [
                                                        {<echo>}
                                                        {
                                                          (DQ 
                                                            <
'*** not find such a program.  So, this module is probably useless.'
                                                            >
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [
                                                        {<echo>}
                                                        {
                                                          (DQ 
                                                            <
'*** \'nm\' from GNU binutils and a full rebuild may help.'
                                                            >
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [49447 49458]
                                                )
                                              ]
                                              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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<no>}
                                                                {<Id.Lit_Equals '='>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
build_old_libs
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'oldlibs='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'oldlibs='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'oldlibs='>
                                                              name: oldlibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {($ Id.VSub_DollarName output_objdir) 
                                                              <'/'> ($ Id.VSub_DollarName libname) <.> ($ Id.VSub_DollarName libext)
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'build_libtool_libs='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: 
                                                            <Id.Lit_VarLike 'build_libtool_libs='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 
'build_libtool_libs='
                                                                >
                                                              name: build_libtool_libs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<module>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'build_old_libs='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'build_old_libs='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 'build_old_libs='>
                                                              name: build_old_libs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<yes>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [49495 49508]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'build_libtool_libs='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'build_libtool_libs='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: 
                                                            <Id.Lit_VarLike 'build_libtool_libs='>
                                                          name: build_libtool_libs
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {<no>}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          spids: [49398 49411]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [
                                            {<echo>}
                                            {
                                              (DQ 
                                                <
'*** The inter-library dependencies that have been dropped here will be'
                                                >
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [
                                            {<echo>}
                                            {
                                              (DQ 
                                                <
'*** automatically added whenever a program is linked with this library'
                                                >
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [{<echo>} {(DQ <'*** or is declared to -dlopen it.'>)}]
                                          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>}
                                                            {<no>}
                                                            {<Id.Lit_Equals '='>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName allow_undefined)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              then_kw: <Id.KW_Then then>
                                              action: [
                                                (command.Simple
                                                  blame_tok: <echo>
                                                  more_env: []
                                                  words: [{<echo>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <echo>
                                                  more_env: []
                                                  words: [
                                                    {<echo>}
                                                    {
                                                      (DQ 
                                                        <
'*** Since this library must not contain undefined symbols,'
                                                        >
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <echo>
                                                  more_env: []
                                                  words: [
                                                    {<echo>}
                                                    {
                                                      (DQ 
                                                        <
'*** because either the platform does not support them or'
                                                        >
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <echo>
                                                  more_env: []
                                                  words: [
                                                    {<echo>}
                                                    {
                                                      (DQ 
                                                        <
'*** it was explicitly requested with -no-undefined,'
                                                        >
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <echo>
                                                  more_env: []
                                                  words: [
                                                    {<echo>}
                                                    {
                                                      (DQ 
                                                        <
'*** libtool will only create a static version of it.'
                                                        >
                                                      )
                                                    }
                                                  ]
                                                  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>}
                                                                    {<no>}
                                                                    {<Id.Lit_Equals '='>}
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
build_old_libs
                                                                        )
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                        )
                                                      then_kw: <Id.KW_Then then>
                                                      action: [
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'oldlibs='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'oldlibs='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'oldlibs='>
                                                                  name: oldlibs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  ($ Id.VSub_DollarName output_objdir) <'/'> ($ Id.VSub_DollarName libname) <.> ($ Id.VSub_DollarName libext)
                                                                }
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                        (command.ShAssignment
                                                          left: 
                                                            <Id.Lit_VarLike 'build_libtool_libs='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: 
                                                                <Id.Lit_VarLike 
'build_libtool_libs='
                                                                >
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'build_libtool_libs='
                                                                    >
                                                                  name: build_libtool_libs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<module>}
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'build_old_libs='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: 
                                                                <Id.Lit_VarLike 'build_old_libs='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'build_old_libs='
                                                                    >
                                                                  name: build_old_libs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<yes>}
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      spids: [49609 49622]
                                                    )
                                                  ]
                                                  else_kw: <Id.KW_Else else>
                                                  else_action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'build_libtool_libs='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: 
                                                            <Id.Lit_VarLike 'build_libtool_libs='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 
'build_libtool_libs='
                                                                >
                                                              name: build_libtool_libs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<no>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  fi_kw: <Id.KW_Fi fi>
                                                  redirects: []
                                                )
                                              ]
                                              spids: [49562 49575]
                                            )
                                          ]
                                          else_action: []
                                          fi_kw: <Id.KW_Fi fi>
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [49382 49395]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'deplibs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'deplibs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'deplibs='>
                                      name: deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName newdeplibs)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [46811 46824]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-darwin> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'newdeplibs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'newdeplibs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'newdeplibs='>
                                      name: newdeplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName ECHO)}
                                                  {(DQ <' '> ($ Id.VSub_DollarName newdeplibs))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {
                                                    (SQ 
                                                      <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                      >
                                                    )
                                                  }
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'new_inherited_linker_flags='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'new_inherited_linker_flags='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'new_inherited_linker_flags='>
                                      name: new_inherited_linker_flags
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName ECHO)}
                                                  {
                                                    (DQ <' '> 
                                                      ($ Id.VSub_DollarName 
new_inherited_linker_flags
                                                      )
                                                    )
                                                  }
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {
                                                    (SQ 
                                                      <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                      >
                                                    )
                                                  }
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'deplibs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'deplibs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'deplibs='>
                                      name: deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName ECHO)}
                                                  {(DQ <' '> ($ Id.VSub_DollarName deplibs))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {
                                                    (SQ 
                                                      <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                      >
                                                    )
                                                  }
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'new_libs='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'new_libs='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new_libs='> name:new_libs)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [path]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName notinst_path)}])
                      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: {(DQ <' '> ($ Id.VSub_DollarName new_libs) <' '>)}
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> 
                                          (DQ <' -L'> ($ Id.VSub_DollarName path) <'/'> 
                                            ($ Id.VSub_DollarName objdir) <' '>
                                          ) <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName deplibs) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' -L'> ($ Id.VSub_DollarName path) <'/'> 
                                                    ($ Id.VSub_DollarName objdir) <' '>
                                                  ) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<new_libs>}
                                                {
                                                  (DQ <' -L'> ($ Id.VSub_DollarName path) <'/'> 
                                                    ($ Id.VSub_DollarName objdir)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [deplib]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName deplibs)}])
                      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 deplib)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <-L>
                                  pattern: (pat.Words words:[{<-L> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName new_libs) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName deplib) <' '>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<new_libs>}
                                                {(DQ <' '> ($ Id.VSub_DollarName deplib))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<new_libs>}
                                        {(DQ <' '> ($ Id.VSub_DollarName deplib))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'deplibs='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'deplibs='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'deplibs='> name:deplibs)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName new_libs)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'library_names='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'library_names='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'library_names='>
                              name: library_names
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'old_library='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'old_library='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'old_library='>
                              name: old_library
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'dlname='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'dlname='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dlname='> name:dlname)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      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: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<yes>}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName build_libtool_libs))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName archive_cmds)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\$'>
                                            ch: '$'
                                          ) <LD> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '> ch:' ') <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'wl='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'wl='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'wl='> name:wl)
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<yes>}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName hardcode_into_libs))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'hardcode_libdirs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'hardcode_libdirs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'hardcode_libdirs='>
                                              name: hardcode_libdirs
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'dep_rpath='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'dep_rpath='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'dep_rpath='>
                                              name: dep_rpath
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'rpath='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'rpath='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'rpath='>
                                              name: rpath
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName finalize_rpath)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<relink>}
                                            {<Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_DollarName opt_mode))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'rpath='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'rpath='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'rpath='>
                                                  name: rpath
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName compile_rpath) 
                                                  ($ Id.VSub_DollarName rpath)
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [libdir]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName rpath)}]
                                        )
                                      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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-n>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
hardcode_libdir_flag_spec
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              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: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<-n>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
hardcode_libdir_separator
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_replace_sysroot>
                                                              more_env: []
                                                              words: [
                                                                {<func_replace_sysroot>}
                                                                {(DQ ($ Id.VSub_DollarName libdir))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'libdir='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'libdir='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'libdir='>
                                                                      name: libdir
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
func_replace_sysroot_result
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              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: <test>
                                                                              more_env: []
                                                                              words: [
                                                                                {<test>}
                                                                                {<-z>}
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName hardcode_libdirs
                                                                                    )
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'hardcode_libdirs='
                                                                        >
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'hardcode_libdirs='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'hardcode_libdirs='
                                                                                >
                                                                              name: hardcode_libdirs
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
libdir
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [50135 50146]
                                                                )
                                                              ]
                                                              else_kw: <Id.KW_Else else>
                                                              else_action: [
                                                                (command.Case
                                                                  case_kw: <Id.KW_Case case>
                                                                  to_match: 
                                                                    (case_arg.Word
                                                                      w: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
hardcode_libdir_separator
                                                                          ) ($ Id.VSub_DollarName hardcode_libdirs) ($ Id.VSub_DollarName hardcode_libdir_separator)
                                                                        }
                                                                    )
                                                                  arms_start: <Id.KW_In in>
                                                                  arms: [
                                                                    (CaseArm
                                                                      left: <Id.Lit_Star '*'>
                                                                      pattern: 
                                                                        (pat.Words
                                                                          words: [
                                                                            {<Id.Lit_Star '*'> 
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName hardcode_libdir_separator
                                                                                ) ($ Id.VSub_DollarName libdir) ($ Id.VSub_DollarName hardcode_libdir_separator)
                                                                              ) <Id.Lit_Star '*'>
                                                                            }
                                                                          ]
                                                                        )
                                                                      middle: <Id.Right_CasePat _>
                                                                      action: []
                                                                      right: <Id.Op_DSemi _>
                                                                    )
                                                                    (CaseArm
                                                                      left: <Id.Lit_Star '*'>
                                                                      pattern: 
                                                                        (pat.Words
                                                                          words: [{<Id.Lit_Star '*'>}]
                                                                        )
                                                                      middle: <Id.Right_CasePat _>
                                                                      action: [
                                                                        (command.Simple
                                                                          blame_tok: <func_append>
                                                                          more_env: []
                                                                          words: [
                                                                            {<func_append>}
                                                                            {<hardcode_libdirs>}
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName hardcode_libdir_separator
                                                                                ) ($ Id.VSub_DollarName libdir)
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                      ]
                                                                      right: <Id.Op_DSemi _>
                                                                    )
                                                                  ]
                                                                  arms_end: <Id.KW_Esac esac>
                                                                  redirects: []
                                                                )
                                                              ]
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [50110 50121]
                                                        )
                                                      ]
                                                      else_kw: <Id.KW_Else else>
                                                      else_action: [
                                                        (command.Simple
                                                          blame_tok: <eval>
                                                          more_env: []
                                                          words: [
                                                            {<eval>}
                                                            {<Id.Lit_VarLike 'flag='> 
                                                              (word_part.EscapedLiteral
                                                                token: <Id.Lit_EscapedChar '\\"'>
                                                                ch: '"'
                                                              ) ($ Id.VSub_DollarName hardcode_libdir_flag_spec) 
                                                              (word_part.EscapedLiteral
                                                                token: <Id.Lit_EscapedChar '\\"'>
                                                                ch: '"'
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <func_append>
                                                          more_env: []
                                                          words: [
                                                            {<func_append>}
                                                            {<dep_rpath>}
                                                            {(DQ <' '> ($ Id.VSub_DollarName flag))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [50096 50107]
                                                )
                                                (IfArm
                                                  keyword: <Id.KW_Elif elif>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.Simple
                                                              blame_tok: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-n>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName runpath_var)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName perm_rpath) 
                                                                <' '>
                                                              )
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName libdir) <' '>
                                                                  ) <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: []
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_append>
                                                              more_env: []
                                                              words: [
                                                                {<func_append>}
                                                                {<perm_rpath>}
                                                                {
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName libdir)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [50229 50240]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
hardcode_libdir_separator
                                                                )
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
hardcode_libdirs
                                                                )
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'libdir='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'libdir='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'libdir='>
                                                      name: libdir
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName hardcode_libdirs)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {
                                                  (DQ <'dep_rpath='> 
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\"'>
                                                      ch: '"'
                                                    ) ($ Id.VSub_DollarName hardcode_libdir_flag_spec) 
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\"'>
                                                      ch: '"'
                                                    )
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [50293 50315]
                                        )
                                      ]
                                      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.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {(DQ ($ Id.VSub_DollarName runpath_var))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {(DQ ($ Id.VSub_DollarName perm_rpath))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'rpath='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'rpath='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'rpath='>
                                                      name: rpath
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [dir]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName perm_rpath)}]
                                                )
                                              semi_tok: <Id.Op_Semi _>
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<rpath>}
                                                        {(DQ ($ Id.VSub_DollarName dir) <':'>)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName runpath_var) <'=\''> 
                                                    ($ Id.VSub_DollarName rpath) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') ($ Id.VSub_DollarName runpath_var) 
                                                    <'\'; export '> ($ Id.VSub_DollarName runpath_var)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [50335 50356]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName dep_rpath))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'deplibs='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'deplibs='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'deplibs='>
                                                  name: deplibs
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName dep_rpath) <' '> 
                                                    ($ Id.VSub_DollarName deplibs)
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  ]
                                  spids: [50037 50050]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'shlibpath='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'shlibpath='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'shlibpath='>
                                      name: shlibpath
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName finalize_shlibpath)}
                                )
                              ]
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<relink>}
                                    {<Id.Lit_Equals '='>}
                                    {(DQ ($ Id.VSub_DollarName opt_mode))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'shlibpath='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'shlibpath='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'shlibpath='>
                                          name: shlibpath
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName compile_shlibpath) 
                                          ($ Id.VSub_DollarName shlibpath)
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                            (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>}
                                                {<-n>}
                                                {(DQ ($ Id.VSub_DollarName shlibpath))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {
                                          (DQ ($ Id.VSub_DollarName shlibpath_var) <'=\''> 
                                            ($ Id.VSub_DollarName shlibpath) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                            ($ Id.VSub_DollarName shlibpath_var) <'\'; export '> ($ Id.VSub_DollarName shlibpath_var)
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [50450 50461]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {<Id.Lit_VarLike 'shared_ext='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                    ch: '"'
                                  ) ($ Id.VSub_DollarName shrext_cmds) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {<Id.Lit_VarLike 'library_names='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                    ch: '"'
                                  ) ($ Id.VSub_DollarName library_names_spec) 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                    ch: '"'
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [{<set>} {<dummy>} {($ Id.VSub_DollarName library_names)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'realname='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'realname='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'realname='>
                                      name: realname
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              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>}
                                                {<-n>}
                                                {(DQ ($ Id.VSub_DollarName soname_spec))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {<Id.Lit_VarLike 'soname='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                            ch: '"'
                                          ) ($ Id.VSub_DollarName soname_spec) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [50519 50530]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'soname='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'soname='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'soname='>
                                          name: soname
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName realname)}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-z>}
                                                {(DQ ($ Id.VSub_DollarName dlname))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'dlname='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'dlname='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'dlname='>
                                              name: dlname
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName soname)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [50551 50562]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'lib='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'lib='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lib='> name:lib)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName output_objdir) <'/'> 
                                      ($ Id.VSub_DollarName realname)
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'linknames='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'linknames='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'linknames='>
                                      name: linknames
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [link]
                              iterable: (for_iter__Args)
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<linknames>}
                                        {(DQ <' '> ($ Id.VSub_DollarName link))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName pic_flag))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'libobjs='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'libobjs='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'libobjs='>
                                          name: libobjs
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (CommandSub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Pipeline
                                                children: [
                                                  (command.Simple
                                                    blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                    more_env: []
                                                    words: [
                                                      {($ Id.VSub_DollarName ECHO)}
                                                      {(DQ ($ Id.VSub_DollarName libobjs))}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                  (command.Simple
                                                    blame_tok: <Id.VSub_DollarName '$SP2NL'>
                                                    more_env: []
                                                    words: [{($ Id.VSub_DollarName SP2NL)}]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                  (command.Simple
                                                    blame_tok: <Id.VSub_DollarName '$SED'>
                                                    more_env: []
                                                    words: [
                                                      {($ Id.VSub_DollarName SED)}
                                                      {(DQ ($ Id.VSub_DollarName lo2o))}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                  (command.Simple
                                                    blame_tok: <Id.VSub_DollarName '$NL2SP'>
                                                    more_env: []
                                                    words: [{($ Id.VSub_DollarName NL2SP)}]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                ]
                                                ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                                              )
                                            right: <Id.Backtick_Right '`'>
                                          )
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {(DQ <X> ($ Id.VSub_DollarName libobjs))}
                                    {<Id.Lit_Equals '='>}
                                    {(DQ <'X '>)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'libobjs='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'libobjs='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'libobjs='>
                                          name: libobjs
                                        )
                                      op: assign_op.Equal
                                      rhs: (rhs_word__Empty)
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'delfiles='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'delfiles='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'delfiles='>
                                      name: delfiles
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-n>}
                                                    {(DQ ($ Id.VSub_DollarName export_symbols))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-n>}
                                                    {(DQ ($ Id.VSub_DollarName include_expsyms))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                          more_env: []
                                          words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <cp>
                                          more_env: []
                                          words: [
                                            {<cp>}
                                            {(DQ ($ Id.VSub_DollarName export_symbols))}
                                            {
                                              (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                                ($ Id.VSub_DollarName libname) <.uexp>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'export_symbols='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'export_symbols='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'export_symbols='>
                                              name: export_symbols
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName output_objdir) <'/'> 
                                              ($ Id.VSub_DollarName libname) <.uexp>
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<delfiles>}
                                        {(DQ <' '> ($ Id.VSub_DollarName export_symbols))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [50668 50689]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'orig_export_symbols='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'orig_export_symbols='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'orig_export_symbols='>
                                      name: orig_export_symbols
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName host_os)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <cygwin>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<cygwin> <Id.Lit_Star '*'>}
                                        {<mingw> <Id.Lit_Star '*'>}
                                        {<cegcc> <Id.Lit_Star '*'>}
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName export_symbols)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-z>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
export_symbols_regex
                                                                )
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <func_dll_def_p>
                                                  more_env: []
                                                  words: [
                                                    {<func_dll_def_p>}
                                                    {(DQ ($ Id.VSub_DollarName export_symbols))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (BraceGroup
                                                  left: <Id.Lit_LBrace '{'>
                                                  children: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'orig_export_symbols='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: 
                                                            <Id.Lit_VarLike 'orig_export_symbols='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 
'orig_export_symbols='
                                                                >
                                                              name: orig_export_symbols
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName export_symbols)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'export_symbols='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'export_symbols='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 'export_symbols='>
                                                              name: export_symbols
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'always_export_symbols='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: 
                                                            <Id.Lit_VarLike 'always_export_symbols='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 
'always_export_symbols='
                                                                >
                                                              name: always_export_symbols
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<yes>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  redirects: []
                                                  right: <Id.Lit_RBrace '}'>
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                          ]
                                          spids: [50756 50777]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-z>}
                                                {(DQ ($ Id.VSub_DollarName export_symbols))}
                                              ]
                                              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.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<yes>}
                                                            {<Id.Lit_Equals '='>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
always_export_symbols
                                                                )
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
export_symbols_regex
                                                                )
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DPipe _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_verbose>
                                              more_env: []
                                              words: [
                                                {<func_verbose>}
                                                {
                                                  (DQ <'generating symbol list for \''> 
                                                    ($ Id.VSub_DollarName libname) <'.la\''>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'export_symbols='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'export_symbols='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'export_symbols='>
                                                      name: export_symbols
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName output_objdir) <'/'> 
                                                      ($ Id.VSub_DollarName libname) <.exp>
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                                  more_env: []
                                                  words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$RM'>
                                                  more_env: []
                                                  words: [
                                                    {($ Id.VSub_DollarName RM)}
                                                    {($ Id.VSub_DollarName export_symbols)}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'cmds='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'cmds='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'cmds='>
                                                      name: cmds
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName export_symbols_cmds)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'save_ifs='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'save_ifs='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'save_ifs='>
                                                          name: save_ifs
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_DollarName IFS)}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'IFS='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'IFS='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'IFS='>
                                                      name: IFS
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(SQ <'~'>)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [cmd1]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName cmds)}]
                                                )
                                              semi_tok: <Id.Op_Semi _>
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'IFS='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'IFS='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'IFS='>
                                                              name: IFS
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName save_ifs)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {
                                                              ($ Id.VSub_DollarName nm_file_list_spec) <Id.Lit_TildeLike '~'> ($ Id.VSub_DollarName to_tool_file_cmd)
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  <Id.Lit_TildeLike 
'~func_convert_file_noop'
                                                                  >
                                                                }
                                                                {<Id.Lit_Star '*'> 
                                                                  <Id.Lit_TildeLike 
'~func_convert_file_msys_to_w32'
                                                                  >
                                                                }
                                                                {<Id.Lit_TildeLike '~'> 
                                                                  <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: 
                                                                <Id.Lit_VarLike 'try_normal_branch='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'try_normal_branch='
                                                                    >
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'try_normal_branch='
                                                                        >
                                                                      name: try_normal_branch
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<yes>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [
                                                                {<eval>}
                                                                {<Id.Lit_VarLike 'cmd='> 
                                                                  (word_part.EscapedLiteral
                                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                                    ch: '"'
                                                                  ) ($ Id.VSub_DollarName cmd1) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <func_len>
                                                              more_env: []
                                                              words: [
                                                                {<func_len>}
                                                                {
                                                                  (DQ <' '> ($ Id.VSub_DollarName cmd))
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'len='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'len='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'len='>
                                                                      name: len
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
func_len_result
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: 
                                                                <Id.Lit_VarLike 'try_normal_branch='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'try_normal_branch='
                                                                    >
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'try_normal_branch='
                                                                        >
                                                                      name: try_normal_branch
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<no>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.AndOr
                                                                  children: [
                                                                    (command.Simple
                                                                      blame_tok: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<yes>}
                                                                        {<Id.Lit_Equals '='>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
try_normal_branch
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (BraceGroup
                                                                      left: <Id.Lit_LBrace '{'>
                                                                      children: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (command.AndOr
                                                                              children: [
                                                                                (command.Simple
                                                                                  blame_tok: <test>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<test>}
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName len
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                    {<-lt>}
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName max_cmd_len
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                                (command.Simple
                                                                                  blame_tok: <test>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<test>}
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName max_cmd_len
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                    {<-le>}
                                                                                    {<-1>}
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                              ]
                                                                              ops: [<Id.Op_DPipe _>]
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                      right: <Id.Lit_RBrace '}'>
                                                                    )
                                                                  ]
                                                                  ops: [<Id.Op_DAmp _>]
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_show_eval>
                                                              more_env: []
                                                              words: [
                                                                {<func_show_eval>}
                                                                {(DQ ($ Id.VSub_DollarName cmd))}
                                                                {(SQ <'exit $?'>)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ShAssignment
                                                              left: 
                                                                <Id.Lit_VarLike 'skipped_export='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'skipped_export='
                                                                    >
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'skipped_export='
                                                                        >
                                                                      name: skipped_export
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<false>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [51015 51063]
                                                        )
                                                        (IfArm
                                                          keyword: <Id.KW_Elif elif>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (command.Simple
                                                                      blame_tok: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<-n>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
nm_file_list_spec
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_basename>
                                                              more_env: []
                                                              words: [
                                                                {<func_basename>}
                                                                {(DQ ($ Id.VSub_DollarName output))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'output_la='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'output_la='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'output_la='>
                                                                      name: output_la
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
func_basename_result
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'save_libobjs='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 'save_libobjs='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'save_libobjs='
                                                                        >
                                                                      name: save_libobjs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {($ Id.VSub_DollarName libobjs)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'save_output='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 'save_output='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'save_output='
                                                                        >
                                                                      name: save_output
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_DollarName output)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'output='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'output='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'output='>
                                                                      name: output
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
output_objdir
                                                                      ) <'/'> ($ Id.VSub_DollarName output_la) <.nm>
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <func_to_tool_file>
                                                              more_env: []
                                                              words: [
                                                                {<func_to_tool_file>}
                                                                {(DQ ($ Id.VSub_DollarName output))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'libobjs='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'libobjs='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'libobjs='>
                                                                      name: libobjs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
nm_file_list_spec
                                                                      ) ($ Id.VSub_DollarName func_to_tool_file_result)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <func_append>
                                                              more_env: []
                                                              words: [
                                                                {<func_append>}
                                                                {<delfiles>}
                                                                {
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName output)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <func_verbose>
                                                              more_env: []
                                                              words: [
                                                                {<func_verbose>}
                                                                {
                                                                  (DQ <'creating '> 
                                                                    ($ Id.VSub_DollarName NM) <' input file list: '> ($ Id.VSub_DollarName output)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ForEach
                                                              keyword: <Id.KW_For for>
                                                              iter_names: [obj]
                                                              iterable: 
                                                                (for_iter.Words
                                                                  words: [
                                                                    {
                                                                      ($ Id.VSub_DollarName 
save_libobjs
                                                                      )
                                                                    }
                                                                  ]
                                                                )
                                                              semi_tok: <Id.Op_Semi _>
                                                              body: 
                                                                (command.DoGroup
                                                                  left: <Id.KW_Do do>
                                                                  children: [
                                                                    (command.Simple
                                                                      blame_tok: <func_to_tool_file>
                                                                      more_env: []
                                                                      words: [
                                                                        {<func_to_tool_file>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName obj)
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: 
                                                                        <Id.VSub_DollarName '$ECHO'>
                                                                      more_env: []
                                                                      words: [
                                                                        {($ Id.VSub_DollarName ECHO)}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
func_to_tool_file_result
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  right: <Id.KW_Done done>
                                                                )
                                                              redirects: [
                                                                (Redir
                                                                  op: <Id.Redir_Great '>'>
                                                                  loc: (redir_loc.Fd fd:1)
                                                                  arg: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName output)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                            )
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [
                                                                {<eval>}
                                                                {<Id.Lit_VarLike 'cmd='> 
                                                                  (word_part.EscapedLiteral
                                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                                    ch: '"'
                                                                  ) ($ Id.VSub_DollarName cmd1) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <func_show_eval>
                                                              more_env: []
                                                              words: [
                                                                {<func_show_eval>}
                                                                {(DQ ($ Id.VSub_DollarName cmd))}
                                                                {(SQ <'exit $?'>)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'output='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'output='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'output='>
                                                                      name: output
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
save_output
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'libobjs='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'libobjs='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'libobjs='>
                                                                      name: libobjs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
save_libobjs
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: 
                                                                <Id.Lit_VarLike 'skipped_export='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'skipped_export='
                                                                    >
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'skipped_export='
                                                                        >
                                                                      name: skipped_export
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<false>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [51081 51092]
                                                        )
                                                      ]
                                                      else_kw: <Id.KW_Else else>
                                                      else_action: [
                                                        (command.Simple
                                                          blame_tok: <func_verbose>
                                                          more_env: []
                                                          words: [
                                                            {<func_verbose>}
                                                            {
                                                              (DQ 
                                                                <
'using reloadable object file for export list...'
                                                                >
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'skipped_export='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: 
                                                                <Id.Lit_VarLike 'skipped_export='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'skipped_export='
                                                                    >
                                                                  name: skipped_export
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<Id.Lit_Colon ':'>}
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                        (command.ControlFlow
                                                          keyword: <Id.ControlFlow_Break break>
                                                        )
                                                      ]
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'IFS='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'IFS='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'IFS='>
                                                      name: IFS
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName save_ifs)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.AndOr
                                                              children: [
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<-n>}
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
export_symbols_regex
                                                                        )
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<Id.Lit_Colon ':'>}
                                                                    {<Id.KW_Bang '!'> 
                                                                      <Id.Lit_Equals '='>
                                                                    }
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
skipped_export
                                                                        )
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              ops: [<Id.Op_DAmp _>]
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_show_eval>
                                                      more_env: []
                                                      words: [
                                                        {<func_show_eval>}
                                                        {
                                                          (SQ 
                                                            <
'$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
                                                            >
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <func_show_eval>
                                                      more_env: []
                                                      words: [
                                                        {<func_show_eval>}
                                                        {
                                                          (SQ 
                                                            <
'$MV "${export_symbols}T" "$export_symbols"'
                                                            >
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [51258 51282]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          spids: [50861 50884]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [50847 50858]
                                )
                              ]
                              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.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-n>}
                                                    {(DQ ($ Id.VSub_DollarName export_symbols))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-n>}
                                                    {(DQ ($ Id.VSub_DollarName include_expsyms))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'tmp_export_symbols='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'tmp_export_symbols='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'tmp_export_symbols='>
                                              name: tmp_export_symbols
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName export_symbols)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-n>}
                                            {(DQ ($ Id.VSub_DollarName orig_export_symbols))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'tmp_export_symbols='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'tmp_export_symbols='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'tmp_export_symbols='>
                                                  name: tmp_export_symbols
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName orig_export_symbols)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                          more_env: []
                                          words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <eval>
                                          more_env: []
                                          words: [
                                            {<eval>}
                                            {
                                              (SQ 
                                                <
'$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
                                                >
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                  ]
                                  spids: [51309 51330]
                                )
                              ]
                              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.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<Id.Lit_Colon ':'>}
                                                    {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName skipped_export))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-n>}
                                                    {(DQ ($ Id.VSub_DollarName orig_export_symbols))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_verbose>
                                      more_env: []
                                      words: [
                                        {<func_verbose>}
                                        {
                                          (DQ <'filter symbol list for \''> 
                                            ($ Id.VSub_DollarName libname) <'.la\' to tag DATA exports'>
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                          more_env: []
                                          words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$SED'>
                                          more_env: []
                                          words: [
                                            {($ Id.VSub_DollarName SED)}
                                            {<-e>}
                                            {
                                              (SQ 
                                                <
'/[ ,]DATA/!d;s,\\(.*\\)\\([ \\,].*\\),s|^\\1$|\\1\\2|,'
                                                >
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Less '<'>
                                              loc: (redir_loc.Fd fd:0)
                                              arg: {($ Id.VSub_DollarName export_symbols)}
                                            )
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: 
                                                {($ Id.VSub_DollarName output_objdir) <'/'> 
                                                  ($ Id.VSub_DollarName libname) <.filter>
                                                }
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<delfiles>}
                                        {
                                          (DQ <' '> ($ Id.VSub_DollarName export_symbols) <' '> 
                                            ($ Id.VSub_DollarName output_objdir) <'/'> ($ Id.VSub_DollarName libname) <.filter>
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'export_symbols='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'export_symbols='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'export_symbols='>
                                              name: export_symbols
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName output_objdir) <'/'> 
                                              ($ Id.VSub_DollarName libname) <.def>
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                          more_env: []
                                          words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$SED'>
                                          more_env: []
                                          words: [
                                            {($ Id.VSub_DollarName SED)}
                                            {<-f>}
                                            {($ Id.VSub_DollarName output_objdir) <'/'> 
                                              ($ Id.VSub_DollarName libname) <.filter>
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Less '<'>
                                              loc: (redir_loc.Fd fd:0)
                                              arg: {($ Id.VSub_DollarName orig_export_symbols)}
                                            )
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName export_symbols)}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                  ]
                                  spids: [51366 51390]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'tmp_deplibs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'tmp_deplibs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'tmp_deplibs='>
                                      name: tmp_deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [test_deplib]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName deplibs)}])
                              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: {(DQ <' '> ($ Id.VSub_DollarName convenience) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName test_deplib) <' '>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<tmp_deplibs>}
                                                {(DQ <' '> ($ Id.VSub_DollarName test_deplib))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'deplibs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'deplibs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'deplibs='>
                                      name: deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName tmp_deplibs)}
                                )
                              ]
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-n>}
                                                {(DQ ($ Id.VSub_DollarName convenience))}
                                              ]
                                              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.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
whole_archive_flag_spec
                                                                )
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<yes>}
                                                            {<Id.Lit_Equals '='>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
compiler_needs_object
                                                                )
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-z>}
                                                            {(DQ ($ Id.VSub_DollarName libobjs))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'whole_archive_flag_spec='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'whole_archive_flag_spec='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: 
                                                        <Id.Lit_VarLike 'whole_archive_flag_spec='>
                                                      name: whole_archive_flag_spec
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [51578 51613]
                                        )
                                      ]
                                      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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-n>}
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
whole_archive_flag_spec
                                                            )
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'save_libobjs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'save_libobjs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'save_libobjs='>
                                                      name: save_libobjs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName libobjs)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {<Id.Lit_VarLike 'libobjs='> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                    ch: '"'
                                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <libobjs>
                                                }
                                                {($ Id.VSub_DollarName whole_archive_flag_spec) 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                    ch: '"'
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {(DQ <X> ($ Id.VSub_DollarName libobjs))}
                                                    {<Id.Lit_Equals '='>}
                                                    {(DQ <'X '>)}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'libobjs='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'libobjs='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'libobjs='>
                                                          name: libobjs
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: (rhs_word__Empty)
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                          ]
                                          spids: [51630 51641]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'gentop='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'gentop='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'gentop='>
                                                  name: gentop
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName output_objdir) <'/'> 
                                                  (${ Id.VSub_Name outputname) <x>
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <func_append>
                                          more_env: []
                                          words: [
                                            {<func_append>}
                                            {<generated>}
                                            {(DQ <' '> ($ Id.VSub_DollarName gentop))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <func_extract_archives>
                                          more_env: []
                                          words: [
                                            {<func_extract_archives>}
                                            {($ Id.VSub_DollarName gentop)}
                                            {($ Id.VSub_DollarName convenience)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <func_append>
                                          more_env: []
                                          words: [
                                            {<func_append>}
                                            {<libobjs>}
                                            {
                                              (DQ <' '> 
                                                ($ Id.VSub_DollarName func_extract_archives_result)
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.AndOr
                                          children: [
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {(DQ <X> ($ Id.VSub_DollarName libobjs))}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ <'X '>)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'libobjs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'libobjs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'libobjs='>
                                                      name: libobjs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          ops: [<Id.Op_DAmp _>]
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [51564 51575]
                                )
                              ]
                              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.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<yes>}
                                                    {<Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName thread_safe))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-n>}
                                                    {
                                                      (DQ 
                                                        ($ Id.VSub_DollarName thread_safe_flag_spec)
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {<Id.Lit_VarLike 'flag='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                            ch: '"'
                                          ) ($ Id.VSub_DollarName thread_safe_flag_spec) 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                            ch: '"'
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<linker_flags>}
                                        {(DQ <' '> ($ Id.VSub_DollarName flag))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [51742 51765]
                                )
                              ]
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<relink>}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName opt_mode))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                          more_env: []
                                          words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <eval>
                                          more_env: []
                                          words: [
                                            {<eval>}
                                            {
                                              (SQ 
                                                <
'(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)'
                                                >
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Exit exit>
                                          arg_word: {($ Id.VSub_QMark '?')}
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                                    )
                                  ]
                                  spids: [51794 51807]
                                )
                              ]
                              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.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<yes>}
                                                    {<Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName module))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-n>}
                                                    {(DQ ($ Id.VSub_DollarName module_cmds))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                          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.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName export_symbols)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
module_expsym_cmds
                                                                )
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {<Id.Lit_VarLike 'test_cmds='> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                    ch: '"'
                                                  ) ($ Id.VSub_DollarName module_expsym_cmds) 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                    ch: '"'
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'cmds='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'cmds='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'cmds='>
                                                      name: cmds
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName module_expsym_cmds)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [51861 51882]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <eval>
                                          more_env: []
                                          words: [
                                            {<eval>}
                                            {<Id.Lit_VarLike 'test_cmds='> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\"'>
                                                ch: '"'
                                              ) ($ Id.VSub_DollarName module_cmds) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'cmds='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'cmds='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'cmds='>
                                                  name: cmds
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName module_cmds)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [51835 51858]
                                )
                              ]
                              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.AndOr
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-n>}
                                                        {(DQ ($ Id.VSub_DollarName export_symbols))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-n>}
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName archive_expsym_cmds)
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DAmp _>]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.Simple
                                          blame_tok: <eval>
                                          more_env: []
                                          words: [
                                            {<eval>}
                                            {<Id.Lit_VarLike 'test_cmds='> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\"'>
                                                ch: '"'
                                              ) ($ Id.VSub_DollarName archive_expsym_cmds) 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\"'>
                                                ch: '"'
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'cmds='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'cmds='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'cmds='>
                                                  name: cmds
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName archive_expsym_cmds)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [51918 51939]
                                    )
                                  ]
                                  else_kw: <Id.KW_Else else>
                                  else_action: [
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {<Id.Lit_VarLike 'test_cmds='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                            ch: '"'
                                          ) ($ Id.VSub_DollarName archive_cmds) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'cmds='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'cmds='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'cmds='>
                                              name: cmds
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName archive_cmds)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  fi_kw: <Id.KW_Fi fi>
                                  redirects: []
                                )
                              ]
                              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.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<Id.Lit_Colon ':'>}
                                                    {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName skipped_export))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <func_len>
                                                  more_env: []
                                                  words: [
                                                    {<func_len>}
                                                    {(DQ <' '> ($ Id.VSub_DollarName test_cmds))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'len='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'len='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'len='>
                                                          name: len
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_DollarName func_len_result)}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {(DQ ($ Id.VSub_DollarName len))}
                                                    {<-lt>}
                                                    {(DQ ($ Id.VSub_DollarName max_cmd_len))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {(DQ ($ Id.VSub_DollarName max_cmd_len))}
                                                    {<-le>}
                                                    {<-1>}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [
                                                <Id.Op_DAmp _>
                                                <Id.Op_DAmp _>
                                                <Id.Op_DAmp _>
                                                <Id.Op_DPipe _>
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_Colon ':'>
                                      more_env: []
                                      words: [{<Id.Lit_Colon ':'>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [51976 52033]
                                )
                              ]
                              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.AndOr
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-z>}
                                                        {(DQ ($ Id.VSub_DollarName convenience))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-z>}
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
whole_archive_flag_spec
                                                            )
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DPipe _>]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'save_libobjs='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'save_libobjs='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'save_libobjs='>
                                                  name: save_libobjs
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName libobjs)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [52087 52108]
                                    )
                                  ]
                                  else_action: []
                                  fi_kw: <Id.KW_Fi fi>
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'save_output='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'save_output='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'save_output='>
                                          name: save_output
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName output)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.Simple
                                  blame_tok: <func_basename>
                                  more_env: []
                                  words: [{<func_basename>} {(DQ ($ Id.VSub_DollarName output))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'output_la='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'output_la='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'output_la='>
                                          name: output_la
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName func_basename_result)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'test_cmds='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'test_cmds='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'test_cmds='>
                                          name: test_cmds
                                        )
                                      op: assign_op.Equal
                                      rhs: (rhs_word__Empty)
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'concat_cmds='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'concat_cmds='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'concat_cmds='>
                                          name: concat_cmds
                                        )
                                      op: assign_op.Equal
                                      rhs: (rhs_word__Empty)
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'objlist='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'objlist='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'objlist='>
                                          name: objlist
                                        )
                                      op: assign_op.Equal
                                      rhs: (rhs_word__Empty)
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'last_robj='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'last_robj='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'last_robj='>
                                          name: last_robj
                                        )
                                      op: assign_op.Equal
                                      rhs: (rhs_word__Empty)
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'k='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'k='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'k='> name:k)
                                      op: assign_op.Equal
                                      rhs: {<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.AndOr
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-n>}
                                                        {(DQ ($ Id.VSub_DollarName save_libobjs))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<Id.Lit_Colon ':'>}
                                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                        {(DQ ($ Id.VSub_DollarName skipped_export))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<yes>}
                                                        {<Id.Lit_Equals '='>}
                                                        {(DQ ($ Id.VSub_DollarName with_gnu_ld))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'output='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'output='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'output='>
                                                  name: output
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName output_objdir) <'/'> 
                                                  ($ Id.VSub_DollarName output_la) <.lnkscript>
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <func_verbose>
                                          more_env: []
                                          words: [
                                            {<func_verbose>}
                                            {
                                              (DQ <'creating GNU ld script: '> 
                                                ($ Id.VSub_DollarName output)
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [{<echo>} {(SQ <'INPUT ('>)}]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName output)}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                        (command.ForEach
                                          keyword: <Id.KW_For for>
                                          iter_names: [obj]
                                          iterable: 
                                            (for_iter.Words
                                              words: [{($ Id.VSub_DollarName save_libobjs)}]
                                            )
                                          body: 
                                            (command.DoGroup
                                              left: <Id.KW_Do do>
                                              children: [
                                                (command.Simple
                                                  blame_tok: <func_to_tool_file>
                                                  more_env: []
                                                  words: [
                                                    {<func_to_tool_file>}
                                                    {(DQ ($ Id.VSub_DollarName obj))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                  more_env: []
                                                  words: [
                                                    {($ Id.VSub_DollarName ECHO)}
                                                    {
                                                      (DQ 
                                                        ($ Id.VSub_DollarName 
func_to_tool_file_result
                                                        )
                                                      )
                                                    }
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_DGreat '>>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {($ Id.VSub_DollarName output)}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              ]
                                              right: <Id.KW_Done done>
                                            )
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [{<echo>} {(SQ <')'>)}]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_DGreat '>>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName output)}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <func_append>
                                          more_env: []
                                          words: [
                                            {<func_append>}
                                            {<delfiles>}
                                            {(DQ <' '> ($ Id.VSub_DollarName output))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <func_to_tool_file>
                                          more_env: []
                                          words: [
                                            {<func_to_tool_file>}
                                            {(DQ ($ Id.VSub_DollarName output))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'output='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'output='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'output='>
                                                  name: output
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName func_to_tool_file_result)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [52159 52195]
                                    )
                                    (IfArm
                                      keyword: <Id.KW_Elif elif>
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.AndOr
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-n>}
                                                        {(DQ ($ Id.VSub_DollarName save_libobjs))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<Id.Lit_Colon ':'>}
                                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                        {(DQ ($ Id.VSub_DollarName skipped_export))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-n>}
                                                        {(DQ ($ Id.VSub_DollarName file_list_spec))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'output='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'output='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'output='>
                                                  name: output
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName output_objdir) <'/'> 
                                                  ($ Id.VSub_DollarName output_la) <.lnk>
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <func_verbose>
                                          more_env: []
                                          words: [
                                            {<func_verbose>}
                                            {
                                              (DQ <'creating linker input file list: '> 
                                                ($ Id.VSub_DollarName output)
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <Id.Lit_Colon ':'>
                                          more_env: []
                                          words: [{<Id.Lit_Colon ':'>}]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName output)}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <set>
                                          more_env: []
                                          words: [{<set>} {<x>} {($ Id.VSub_DollarName save_libobjs)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <shift>
                                          more_env: []
                                          words: [{<shift>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'firstobj='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'firstobj='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'firstobj='>
                                                  name: firstobj
                                                )
                                              op: assign_op.Equal
                                              rhs: (rhs_word__Empty)
                                            )
                                          ]
                                          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: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<yes>}
                                                            {<Id.Lit_Equals '='>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
compiler_needs_object
                                                                )
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              then_kw: <Id.KW_Then then>
                                              action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'firstobj='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'firstobj='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'firstobj='>
                                                          name: firstobj
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {(DQ ($ Id.VSub_Number 1) <' '>)}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.Simple
                                                  blame_tok: <shift>
                                                  more_env: []
                                                  words: [{<shift>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              spids: [52361 52374]
                                            )
                                          ]
                                          else_action: []
                                          fi_kw: <Id.KW_Fi fi>
                                          redirects: []
                                        )
                                        (command.ForEach
                                          keyword: <Id.KW_For for>
                                          iter_names: [obj]
                                          iterable: (for_iter__Args)
                                          body: 
                                            (command.DoGroup
                                              left: <Id.KW_Do do>
                                              children: [
                                                (command.Simple
                                                  blame_tok: <func_to_tool_file>
                                                  more_env: []
                                                  words: [
                                                    {<func_to_tool_file>}
                                                    {(DQ ($ Id.VSub_DollarName obj))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                  more_env: []
                                                  words: [
                                                    {($ Id.VSub_DollarName ECHO)}
                                                    {
                                                      (DQ 
                                                        ($ Id.VSub_DollarName 
func_to_tool_file_result
                                                        )
                                                      )
                                                    }
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_DGreat '>>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {($ Id.VSub_DollarName output)}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              ]
                                              right: <Id.KW_Done done>
                                            )
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <func_append>
                                          more_env: []
                                          words: [
                                            {<func_append>}
                                            {<delfiles>}
                                            {(DQ <' '> ($ Id.VSub_DollarName output))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <func_to_tool_file>
                                          more_env: []
                                          words: [
                                            {<func_to_tool_file>}
                                            {(DQ ($ Id.VSub_DollarName output))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'output='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'output='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'output='>
                                                  name: output
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName firstobj) 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                    ch: '"'
                                                  ) ($ Id.VSub_DollarName file_list_spec) ($ Id.VSub_DollarName func_to_tool_file_result) 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                    ch: '"'
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [52289 52323]
                                    )
                                  ]
                                  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.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-n>}
                                                        {(DQ ($ Id.VSub_DollarName save_libobjs))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_verbose>
                                              more_env: []
                                              words: [
                                                {<func_verbose>}
                                                {(DQ <'creating reloadable object files...'>)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'output='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'output='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'output='>
                                                      name: output
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName output_objdir) <'/'> 
                                                      ($ Id.VSub_DollarName output_la) <-> ($ Id.VSub_DollarName k) <.> ($ Id.VSub_DollarName objext)
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {<Id.Lit_VarLike 'test_cmds='> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                    ch: '"'
                                                  ) ($ Id.VSub_DollarName reload_cmds) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <func_len>
                                              more_env: []
                                              words: [
                                                {<func_len>}
                                                {(DQ <' '> ($ Id.VSub_DollarName test_cmds))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'len0='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'len0='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'len0='>
                                                      name: len0
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName func_len_result)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'len='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'len='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'len='>
                                                      name: len
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName len0)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [obj]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName save_libobjs)}]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <func_len>
                                                      more_env: []
                                                      words: [
                                                        {<func_len>}
                                                        {(DQ <' '> ($ Id.VSub_DollarName obj))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <func_arith>
                                                      more_env: []
                                                      words: [
                                                        {<func_arith>}
                                                        {($ Id.VSub_DollarName len)}
                                                        {<Id.Lit_Other '+'>}
                                                        {($ Id.VSub_DollarName func_len_result)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'len='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'len='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'len='>
                                                              name: len
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName func_arith_result)
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (command.AndOr
                                                                      children: [
                                                                        (command.Simple
                                                                          blame_tok: <test>
                                                                          more_env: []
                                                                          words: [
                                                                            {<test>}
                                                                            {<-z>}
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName objlist
                                                                                )
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                        (command.Simple
                                                                          blame_tok: <test>
                                                                          more_env: []
                                                                          words: [
                                                                            {<test>}
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName len
                                                                                )
                                                                              )
                                                                            }
                                                                            {<-lt>}
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName max_cmd_len
                                                                                )
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                      ]
                                                                      ops: [<Id.Op_DPipe _>]
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_append>
                                                              more_env: []
                                                              words: [
                                                                {<func_append>}
                                                                {<objlist>}
                                                                {
                                                                  (DQ <' '> ($ Id.VSub_DollarName obj))
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          spids: [52540 52566]
                                                        )
                                                      ]
                                                      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.Simple
                                                                          blame_tok: <test>
                                                                          more_env: []
                                                                          words: [
                                                                            {<test>}
                                                                            {<1>}
                                                                            {<-eq>}
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName k
                                                                                )
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                      terminator: <Id.Op_Semi _>
                                                                    )
                                                                  ]
                                                                )
                                                              then_kw: <Id.KW_Then then>
                                                              action: [
                                                                (command.ShAssignment
                                                                  left: 
                                                                    <Id.Lit_VarLike 'reload_objs='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'reload_objs='
                                                                        >
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'reload_objs='
                                                                            >
                                                                          name: reload_objs
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
objlist
                                                                          )
                                                                        }
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (command.Simple
                                                                  blame_tok: <eval>
                                                                  more_env: []
                                                                  words: [
                                                                    {<eval>}
                                                                    {<Id.Lit_VarLike 'concat_cmds='> 
                                                                      (word_part.EscapedLiteral
                                                                        token: 
                                                                          <Id.Lit_EscapedChar '\\"'>
                                                                        ch: '"'
                                                                      ) ($ Id.VSub_DollarName reload_cmds) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              spids: [52590 52603]
                                                            )
                                                          ]
                                                          else_kw: <Id.KW_Else else>
                                                          else_action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'reload_objs='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 'reload_objs='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'reload_objs='
                                                                        >
                                                                      name: reload_objs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName objlist) <' '> ($ Id.VSub_DollarName last_robj)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [
                                                                {<eval>}
                                                                {<Id.Lit_VarLike 'concat_cmds='> 
                                                                  (word_part.EscapedLiteral
                                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                                    ch: '"'
                                                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <concat_cmds> <Id.Lit_TildeLike '~'> 
                                                                  ($ Id.VSub_DollarName reload_cmds) <Id.Lit_TildeLike '~'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <RM>
                                                                }
                                                                {($ Id.VSub_DollarName last_robj) 
                                                                  (word_part.EscapedLiteral
                                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                                    ch: '"'
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          fi_kw: <Id.KW_Fi fi>
                                                          redirects: []
                                                        )
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'last_robj='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'last_robj='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'last_robj='>
                                                                  name: last_robj
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  ($ Id.VSub_DollarName output_objdir) <'/'> ($ Id.VSub_DollarName output_la) <-> ($ Id.VSub_DollarName k) <.> ($ Id.VSub_DollarName objext)
                                                                }
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                        (command.Simple
                                                          blame_tok: <func_arith>
                                                          more_env: []
                                                          words: [
                                                            {<func_arith>}
                                                            {($ Id.VSub_DollarName k)}
                                                            {<Id.Lit_Other '+'>}
                                                            {<1>}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'k='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'k='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'k='>
                                                                  name: k
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  ($ Id.VSub_DollarName 
func_arith_result
                                                                  )
                                                                }
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'output='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'output='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'output='>
                                                                  name: output
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  ($ Id.VSub_DollarName output_objdir) <'/'> ($ Id.VSub_DollarName output_la) <-> ($ Id.VSub_DollarName k) <.> ($ Id.VSub_DollarName objext)
                                                                }
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'objlist='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'objlist='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'objlist='>
                                                                  name: objlist
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ <' '> ($ Id.VSub_DollarName obj))
                                                                }
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                        (command.Simple
                                                          blame_tok: <func_len>
                                                          more_env: []
                                                          words: [
                                                            {<func_len>}
                                                            {
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName last_robj)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <func_arith>
                                                          more_env: []
                                                          words: [
                                                            {<func_arith>}
                                                            {($ Id.VSub_DollarName len0)}
                                                            {<Id.Lit_Other '+'>}
                                                            {($ Id.VSub_DollarName func_len_result)}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'len='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'len='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'len='>
                                                                  name: len
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  ($ Id.VSub_DollarName 
func_arith_result
                                                                  )
                                                                }
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-z>}
                                                    {(DQ ($ Id.VSub_DollarName concat_cmds))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'concat_cmds='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'concat_cmds='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'concat_cmds='>
                                                          name: concat_cmds
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {($ Id.VSub_DollarName concat_cmds) 
                                                          <Id.Lit_TildeLike '~'>
                                                        }
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'reload_objs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'reload_objs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'reload_objs='>
                                                      name: reload_objs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName objlist) <' '> 
                                                        ($ Id.VSub_DollarName last_robj)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {<Id.Lit_VarLike 'concat_cmds='> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                    ch: '"'
                                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <concat_cmds> 
                                                  ($ Id.VSub_DollarName reload_cmds) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                }
                                              ]
                                              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>}
                                                                {<-n>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName last_robj)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [
                                                        {<eval>}
                                                        {<Id.Lit_VarLike 'concat_cmds='> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\"'>
                                                            ch: '"'
                                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <concat_cmds> <Id.Lit_TildeLike '~'> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\$'>
                                                            ch: '$'
                                                          ) <RM>
                                                        }
                                                        {($ Id.VSub_DollarName last_robj) 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\"'>
                                                            ch: '"'
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [52772 52783]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<delfiles>}
                                                {(DQ <' '> ($ Id.VSub_DollarName output))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [52447 52458]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'output='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'output='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'output='>
                                                  name: output
                                                )
                                              op: assign_op.Equal
                                              rhs: (rhs_word__Empty)
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.Left_DollarBrace '${'>
                                          more_env: []
                                          words: [
                                            {
                                              (BracedVarSub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name skipped_export>
                                                var_name: skipped_export
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VTest_Hyphen _>
                                                    arg_word: {<false>}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (command.Simple
                                              blame_tok: <func_verbose>
                                              more_env: []
                                              words: [
                                                {<func_verbose>}
                                                {
                                                  (DQ <'generating symbol list for \''> 
                                                    ($ Id.VSub_DollarName libname) <'.la\''>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'export_symbols='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'export_symbols='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'export_symbols='>
                                                      name: export_symbols
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName output_objdir) <'/'> 
                                                      ($ Id.VSub_DollarName libname) <.exp>
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                                  more_env: []
                                                  words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$RM'>
                                                  more_env: []
                                                  words: [
                                                    {($ Id.VSub_DollarName RM)}
                                                    {($ Id.VSub_DollarName export_symbols)}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'libobjs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'libobjs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'libobjs='>
                                                      name: libobjs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName output)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-z>}
                                                    {(DQ ($ Id.VSub_DollarName concat_cmds))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'concat_cmds='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'concat_cmds='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'concat_cmds='>
                                                          name: concat_cmds
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {($ Id.VSub_DollarName concat_cmds) 
                                                          <Id.Lit_TildeLike '~'>
                                                        }
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {<Id.Lit_VarLike 'concat_cmds='> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                    ch: '"'
                                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <concat_cmds> 
                                                  ($ Id.VSub_DollarName export_symbols_cmds) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                }
                                              ]
                                              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>}
                                                                {<-n>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName last_robj)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [
                                                        {<eval>}
                                                        {<Id.Lit_VarLike 'concat_cmds='> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\"'>
                                                            ch: '"'
                                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <concat_cmds> <Id.Lit_TildeLike '~'> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\$'>
                                                            ch: '$'
                                                          ) <RM>
                                                        }
                                                        {($ Id.VSub_DollarName last_robj) 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\"'>
                                                            ch: '"'
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [52893 52904]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-n>}
                                            {(DQ ($ Id.VSub_DollarName save_libobjs))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <func_verbose>
                                          more_env: []
                                          words: [
                                            {<func_verbose>}
                                            {
                                              (DQ <'creating a temporary reloadable object file: '> 
                                                ($ Id.VSub_DollarName output)
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                    (command.Sentence
                                      child: 
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'save_ifs='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'save_ifs='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'save_ifs='>
                                                  name: save_ifs
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName IFS)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'IFS='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'IFS='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'IFS='>
                                              name: IFS
                                            )
                                          op: assign_op.Equal
                                          rhs: {(SQ <'~'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [cmd]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName concat_cmds)}]
                                        )
                                      semi_tok: <Id.Op_Semi _>
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'IFS='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'IFS='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'IFS='>
                                                      name: IFS
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName save_ifs)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$opt_quiet'>
                                                  more_env: []
                                                  words: [{($ Id.VSub_DollarName opt_quiet)}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (BraceGroup
                                                  left: <Id.Lit_LBrace '{'>
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <func_quote_for_expand>
                                                      more_env: []
                                                      words: [
                                                        {<func_quote_for_expand>}
                                                        {(DQ ($ Id.VSub_DollarName cmd))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [
                                                        {<eval>}
                                                        {
                                                          (DQ <'func_echo '> 
                                                            ($ Id.VSub_DollarName 
func_quote_for_expand_result
                                                            )
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  redirects: []
                                                  right: <Id.Lit_RBrace '}'>
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                                  more_env: []
                                                  words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <eval>
                                                  more_env: []
                                                  words: [{<eval>} {(DQ ($ Id.VSub_DollarName cmd))}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (BraceGroup
                                                  left: <Id.Lit_LBrace '{'>
                                                  children: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'lt_exit='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'lt_exit='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'lt_exit='>
                                                              name: lt_exit
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_QMark '?')}
                                                        )
                                                      ]
                                                      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: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<relink>}
                                                                        {<Id.Lit_Equals '='>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
opt_mode
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Subshell
                                                              left: <Id.Op_LParen _>
                                                              child: 
                                                                (command.AndOr
                                                                  children: [
                                                                    (command.Simple
                                                                      blame_tok: <cd>
                                                                      more_env: []
                                                                      words: [
                                                                        {<cd>}
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
output_objdir
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: 
                                                                        <Id.VSub_DollarName '$RM'>
                                                                      more_env: []
                                                                      words: [
                                                                        {($ Id.VSub_DollarName RM)}
                                                                        {
                                                                          (DQ 
                                                                            (${ Id.VSub_Name realname) <T>
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: 
                                                                        <Id.VSub_DollarName '$MV'>
                                                                      more_env: []
                                                                      words: [
                                                                        {($ Id.VSub_DollarName MV)}
                                                                        {
                                                                          (DQ 
                                                                            (${ Id.VSub_Name realname) <U>
                                                                          )
                                                                        }
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
realname
                                                                            )
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                                                                )
                                                              right: <Id.Right_Subshell _>
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [53027 53040]
                                                        )
                                                      ]
                                                      else_action: []
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Exit exit>
                                                      arg_word: {($ Id.VSub_DollarName lt_exit)}
                                                    )
                                                  ]
                                                  redirects: []
                                                  right: <Id.Lit_RBrace '}'>
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'IFS='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'IFS='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'IFS='>
                                              name: IFS
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName save_ifs)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
export_symbols_regex
                                                                )
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <Id.Left_DollarBrace '${'>
                                                          more_env: []
                                                          words: [
                                                            {
                                                              (BracedVarSub
                                                                left: <Id.Left_DollarBrace '${'>
                                                                token: <Id.VSub_Name skipped_export>
                                                                var_name: skipped_export
                                                                suffix_op: 
                                                                  (suffix_op.Unary
                                                                    op: <Id.VTest_Hyphen _>
                                                                    arg_word: {<false>}
                                                                  )
                                                                right: <Id.Right_DollarBrace '}'>
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_show_eval>
                                              more_env: []
                                              words: [
                                                {<func_show_eval>}
                                                {
                                                  (SQ 
                                                    <
'$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
                                                    >
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <func_show_eval>
                                              more_env: []
                                              words: [
                                                {<func_show_eval>}
                                                {(SQ <'$MV "${export_symbols}T" "$export_symbols"'>)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [53104 53123]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  fi_kw: <Id.KW_Fi fi>
                                  redirects: []
                                )
                                (command.AndOr
                                  children: [
                                    (command.Simple
                                      blame_tok: <Id.Left_DollarBrace '${'>
                                      more_env: []
                                      words: [
                                        {
                                          (BracedVarSub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name skipped_export>
                                            var_name: skipped_export
                                            suffix_op: 
                                              (suffix_op.Unary
                                                op: <Id.VTest_Hyphen _>
                                                arg_word: {<false>}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (BraceGroup
                                      left: <Id.Lit_LBrace '{'>
                                      children: [
                                        (command.If
                                          if_kw: <Id.KW_If if>
                                          arms: [
                                            (IfArm
                                              keyword: <Id.KW_If if>
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.AndOr
                                                          children: [
                                                            (command.Simple
                                                              blame_tok: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-n>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
export_symbols
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-n>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
include_expsyms
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          ops: [<Id.Op_DAmp _>]
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              then_kw: <Id.KW_Then then>
                                              action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'tmp_export_symbols='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'tmp_export_symbols='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: 
                                                            <Id.Lit_VarLike 'tmp_export_symbols='>
                                                          name: tmp_export_symbols
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_DollarName export_symbols)}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.AndOr
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-n>}
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName orig_export_symbols)
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'tmp_export_symbols='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: 
                                                            <Id.Lit_VarLike 'tmp_export_symbols='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 
'tmp_export_symbols='
                                                                >
                                                              name: tmp_export_symbols
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName 
orig_export_symbols
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DAmp _>]
                                                )
                                                (command.AndOr
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                                      more_env: []
                                                      words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [
                                                        {<eval>}
                                                        {
                                                          (SQ 
                                                            <
'$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
                                                            >
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DPipe _>]
                                                )
                                              ]
                                              spids: [53158 53179]
                                            )
                                          ]
                                          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: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
orig_export_symbols
                                                                )
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              then_kw: <Id.KW_Then then>
                                              action: [
                                                (command.Simple
                                                  blame_tok: <func_verbose>
                                                  more_env: []
                                                  words: [
                                                    {<func_verbose>}
                                                    {
                                                      (DQ <'filter symbol list for \''> 
                                                        ($ Id.VSub_DollarName libname) <'.la\' to tag DATA exports'>
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.AndOr
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                                      more_env: []
                                                      words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <Id.VSub_DollarName '$SED'>
                                                      more_env: []
                                                      words: [
                                                        {($ Id.VSub_DollarName SED)}
                                                        {<-e>}
                                                        {
                                                          (SQ 
                                                            <
'/[ ,]DATA/!d;s,\\(.*\\)\\([ \\,].*\\),s|^\\1$|\\1\\2|,'
                                                            >
                                                          )
                                                        }
                                                      ]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_Less '<'>
                                                          loc: (redir_loc.Fd fd:0)
                                                          arg: {($ Id.VSub_DollarName export_symbols)}
                                                        )
                                                        (Redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: 
                                                            {($ Id.VSub_DollarName output_objdir) 
                                                              <'/'> ($ Id.VSub_DollarName libname) <.filter>
                                                            }
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DPipe _>]
                                                )
                                                (command.Simple
                                                  blame_tok: <func_append>
                                                  more_env: []
                                                  words: [
                                                    {<func_append>}
                                                    {<delfiles>}
                                                    {
                                                      (DQ <' '> ($ Id.VSub_DollarName export_symbols) 
                                                        <' '> ($ Id.VSub_DollarName output_objdir) <'/'> ($ Id.VSub_DollarName libname) <.filter>
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'export_symbols='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'export_symbols='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'export_symbols='>
                                                          name: export_symbols
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {($ Id.VSub_DollarName output_objdir) <'/'> 
                                                          ($ Id.VSub_DollarName libname) <.def>
                                                        }
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.AndOr
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                                      more_env: []
                                                      words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <Id.VSub_DollarName '$SED'>
                                                      more_env: []
                                                      words: [
                                                        {($ Id.VSub_DollarName SED)}
                                                        {<-f>}
                                                        {($ Id.VSub_DollarName output_objdir) <'/'> 
                                                          ($ Id.VSub_DollarName libname) <.filter>
                                                        }
                                                      ]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_Less '<'>
                                                          loc: (redir_loc.Fd fd:0)
                                                          arg: 
                                                            {
                                                              ($ Id.VSub_DollarName 
orig_export_symbols
                                                              )
                                                            }
                                                        )
                                                        (Redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: {($ Id.VSub_DollarName export_symbols)}
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DPipe _>]
                                                )
                                              ]
                                              spids: [53215 53226]
                                            )
                                          ]
                                          else_action: []
                                          fi_kw: <Id.KW_Fi fi>
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                      right: <Id.Lit_RBrace '}'>
                                    )
                                  ]
                                  ops: [<Id.Op_DAmp _>]
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'libobjs='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'libobjs='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'libobjs='>
                                          name: libobjs
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName output)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'output='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'output='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'output='>
                                          name: output
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName save_output)}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.If
                                  if_kw: <Id.KW_If if>
                                  arms: [
                                    (IfArm
                                      keyword: <Id.KW_If if>
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.AndOr
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-n>}
                                                        {(DQ ($ Id.VSub_DollarName convenience))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-n>}
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
whole_archive_flag_spec
                                                            )
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DAmp _>]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.Simple
                                          blame_tok: <eval>
                                          more_env: []
                                          words: [
                                            {<eval>}
                                            {<Id.Lit_VarLike 'libobjs='> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\"'>
                                                ch: '"'
                                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <libobjs>
                                            }
                                            {($ Id.VSub_DollarName whole_archive_flag_spec) 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\"'>
                                                ch: '"'
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.AndOr
                                          children: [
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {(DQ <X> ($ Id.VSub_DollarName libobjs))}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ <'X '>)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'libobjs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'libobjs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'libobjs='>
                                                      name: libobjs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          ops: [<Id.Op_DAmp _>]
                                        )
                                      ]
                                      spids: [53350 53371]
                                    )
                                  ]
                                  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.AndOr
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<yes>}
                                                        {<Id.Lit_Equals '='>}
                                                        {(DQ ($ Id.VSub_DollarName module))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-n>}
                                                        {(DQ ($ Id.VSub_DollarName module_cmds))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DAmp _>]
                                                )
                                              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.AndOr
                                                          children: [
                                                            (command.Simple
                                                              blame_tok: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-n>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
export_symbols
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-n>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
module_expsym_cmds
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          ops: [<Id.Op_DAmp _>]
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              then_kw: <Id.KW_Then then>
                                              action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'cmds='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'cmds='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'cmds='>
                                                          name: cmds
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_DollarName module_expsym_cmds)}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              spids: [53445 53466]
                                            )
                                          ]
                                          else_kw: <Id.KW_Else else>
                                          else_action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'cmds='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'cmds='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'cmds='>
                                                      name: cmds
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName module_cmds)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          fi_kw: <Id.KW_Fi fi>
                                          redirects: []
                                        )
                                      ]
                                      spids: [53419 53442]
                                    )
                                  ]
                                  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.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName export_symbols)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
archive_expsym_cmds
                                                                )
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'cmds='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'cmds='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'cmds='>
                                                      name: cmds
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName archive_expsym_cmds)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [53486 53507]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'cmds='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'cmds='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'cmds='>
                                                  name: cmds
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName archive_cmds)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  fi_kw: <Id.KW_Fi fi>
                                  redirects: []
                                )
                              ]
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-n>}
                                                {(DQ ($ Id.VSub_DollarName delfiles))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {<Id.Lit_VarLike 'cmds='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                            ch: '"'
                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <cmds> <Id.Lit_TildeLike '~'> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\$'>
                                            ch: '$'
                                          ) <RM>
                                        }
                                        {($ Id.VSub_DollarName delfiles) 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                            ch: '"'
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [53531 53542]
                                )
                              ]
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-n>}
                                                {(DQ ($ Id.VSub_DollarName dlprefiles))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'gentop='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'gentop='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'gentop='>
                                              name: gentop
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName output_objdir) <'/'> 
                                              (${ Id.VSub_Name outputname) <x>
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<generated>}
                                        {(DQ <' '> ($ Id.VSub_DollarName gentop))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_extract_archives>
                                      more_env: []
                                      words: [
                                        {<func_extract_archives>}
                                        {($ Id.VSub_DollarName gentop)}
                                        {($ Id.VSub_DollarName dlprefiles)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<libobjs>}
                                        {
                                          (DQ <' '> 
                                            ($ Id.VSub_DollarName func_extract_archives_result)
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {(DQ <X> ($ Id.VSub_DollarName libobjs))}
                                            {<Id.Lit_Equals '='>}
                                            {(DQ <'X '>)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'libobjs='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'libobjs='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'libobjs='>
                                                  name: libobjs
                                                )
                                              op: assign_op.Equal
                                              rhs: (rhs_word__Empty)
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  ]
                                  spids: [53571 53582]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'save_ifs='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'save_ifs='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'save_ifs='>
                                          name: save_ifs
                                        )
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName IFS)}
                                    )
                                  ]
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'IFS='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'IFS='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'~'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [cmd]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName cmds)}])
                              semi_tok: <Id.Op_Semi _>
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'IFS='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'IFS='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'IFS='>
                                              name: IFS
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName sp) ($ Id.VSub_DollarName nl)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {<Id.Lit_VarLike 'cmd='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                            ch: '"'
                                          ) ($ Id.VSub_DollarName cmd) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'IFS='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'IFS='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'IFS='>
                                              name: IFS
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName save_ifs)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$opt_quiet'>
                                          more_env: []
                                          words: [{($ Id.VSub_DollarName opt_quiet)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (command.Simple
                                              blame_tok: <func_quote_for_expand>
                                              more_env: []
                                              words: [
                                                {<func_quote_for_expand>}
                                                {(DQ ($ Id.VSub_DollarName cmd))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {
                                                  (DQ <'func_echo '> 
                                                    ($ Id.VSub_DollarName 
func_quote_for_expand_result
                                                    )
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                          more_env: []
                                          words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <eval>
                                          more_env: []
                                          words: [{<eval>} {(DQ ($ Id.VSub_DollarName cmd))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'lt_exit='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'lt_exit='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'lt_exit='>
                                                      name: lt_exit
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_QMark '?')}
                                                )
                                              ]
                                              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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<relink>}
                                                                {<Id.Lit_Equals '='>}
                                                                {(DQ ($ Id.VSub_DollarName opt_mode))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Subshell
                                                      left: <Id.Op_LParen _>
                                                      child: 
                                                        (command.AndOr
                                                          children: [
                                                            (command.Simple
                                                              blame_tok: <cd>
                                                              more_env: []
                                                              words: [
                                                                {<cd>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
output_objdir
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <Id.VSub_DollarName '$RM'>
                                                              more_env: []
                                                              words: [
                                                                {($ Id.VSub_DollarName RM)}
                                                                {(DQ (${ Id.VSub_Name realname) <T>)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <Id.VSub_DollarName '$MV'>
                                                              more_env: []
                                                              words: [
                                                                {($ Id.VSub_DollarName MV)}
                                                                {(DQ (${ Id.VSub_Name realname) <U>)}
                                                                {(DQ ($ Id.VSub_DollarName realname))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                                                        )
                                                      right: <Id.Right_Subshell _>
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [53732 53745]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Exit exit>
                                              arg_word: {($ Id.VSub_DollarName lt_exit)}
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'IFS='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'IFS='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName save_ifs)}
                                )
                              ]
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<relink>}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName opt_mode))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                          more_env: []
                                          words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <eval>
                                          more_env: []
                                          words: [
                                            {<eval>}
                                            {
                                              (SQ 
                                                <
'(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)'
                                                >
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Exit exit>
                                          arg_word: {($ Id.VSub_QMark '?')}
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                                    )
                                    (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>}
                                                        {<-n>}
                                                        {(DQ ($ Id.VSub_DollarName convenience))}
                                                      ]
                                                      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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-z>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
whole_archive_flag_spec
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_show_eval>
                                                      more_env: []
                                                      words: [
                                                        {<func_show_eval>}
                                                        {(SQ <'${RM}r "$gentop"'>)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [53861 53872]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          spids: [53847 53858]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Exit exit>
                                      arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
                                    )
                                  ]
                                  spids: [53813 53826]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [linkname]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName linknames)}])
                              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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {(DQ ($ Id.VSub_DollarName realname))}
                                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                        {(DQ ($ Id.VSub_DollarName linkname))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_show_eval>
                                              more_env: []
                                              words: [
                                                {<func_show_eval>}
                                                {
                                                  (SQ 
                                                    <
'(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")'
                                                    >
                                                  )
                                                }
                                                {(SQ <'exit $?'>)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [53914 53930]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<yes>}
                                                    {<Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName module))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<yes>}
                                                    {<Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName export_dynamic))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'dlname='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'dlname='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'dlname='>
                                              name: dlname
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName soname)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [53955 53980]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          spids: [49991 50004]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <obj>
                  pattern: (pat.Words words:[{<obj>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-n>}
                                            {
                                              (DQ ($ Id.VSub_DollarName dlfiles) 
                                                ($ Id.VSub_DollarName dlprefiles)
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<no>}
                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_DollarName dlself))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <func_warning>
                              more_env: []
                              words: [{<func_warning>} {(DQ <'\'-dlopen\' is ignored for objects'>)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [54005 54030]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName deplibs))})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\ '>
                                    ch: ' '
                                  ) <-l> <Id.Lit_Star '*'>
                                }
                                {<Id.Lit_Star '*'> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\ '>
                                    ch: ' '
                                  ) <-L> <Id.Lit_Star '*'>
                                }
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_warning>
                              more_env: []
                              words: [
                                {<func_warning>}
                                {(DQ <'\'-l\' and \'-L\' are ignored for objects'>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName rpath))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <func_warning>
                          more_env: []
                          words: [{<func_warning>} {(DQ <'\'-rpath\' is ignored for objects'>)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName xrpath))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <func_warning>
                          more_env: []
                          words: [{<func_warning>} {(DQ <'\'-R\' is ignored for objects'>)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName vinfo))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <func_warning>
                          more_env: []
                          words: [{<func_warning>} {(DQ <'\'-version-info\' is ignored for objects'>)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName release))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <func_warning>
                          more_env: []
                          words: [{<func_warning>} {(DQ <'\'-release\' is ignored for objects'>)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName output)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.lo>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<-n>}
                                    {
                                      (DQ ($ Id.VSub_DollarName objs) 
                                        ($ Id.VSub_DollarName old_deplibs)
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_fatal_error>
                                  more_env: []
                                  words: [
                                    {<func_fatal_error>}
                                    {
                                      (DQ <'cannot build library object \''> 
                                        ($ Id.VSub_DollarName output) <'\' from non-libtool objects'>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'libobj='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'libobj='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libobj='> name:libobj)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName output)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_lo2o>
                              more_env: []
                              words: [{<func_lo2o>} {(DQ ($ Id.VSub_DollarName libobj))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'obj='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'obj='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'obj='> name:obj)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_lo2o_result)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'libobj='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'libobj='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libobj='> name:libobj)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'obj='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'obj='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'obj='> name:obj)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName output)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                          more_env: []
                          words: [{($ Id.VSub_DollarName opt_dry_run)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <Id.VSub_DollarName '$RM'>
                          more_env: []
                          words: [
                            {($ Id.VSub_DollarName RM)}
                            {($ Id.VSub_DollarName obj)}
                            {($ Id.VSub_DollarName libobj)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'reload_conv_objs='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'reload_conv_objs='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'reload_conv_objs='>
                              name: reload_conv_objs
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'gentop='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'gentop='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'gentop='> name:gentop)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName reload_cmds)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\$'>
                                    ch: '$'
                                  ) <Id.Lit_ArrayLhsOpen 'LD['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '> ch:' ') 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\$'>
                                    ch: '$'
                                  ) <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                }
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'wl='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'wl='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'wl='> name:wl)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      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: <test>
                                      more_env: []
                                      words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName convenience))}]
                                      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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-n>}
                                                {(DQ ($ Id.VSub_DollarName whole_archive_flag_spec))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {<Id.Lit_VarLike 'tmp_whole_archive_flags='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                            ch: '"'
                                          ) ($ Id.VSub_DollarName whole_archive_flag_spec) 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                            ch: '"'
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName wl))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'tmp_whole_archive_flags='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'tmp_whole_archive_flags='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'tmp_whole_archive_flags='>
                                                  name: tmp_whole_archive_flags
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (CommandSub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (command.Pipeline
                                                        children: [
                                                          (command.Simple
                                                            blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                            more_env: []
                                                            words: [
                                                              {($ Id.VSub_DollarName ECHO)}
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
tmp_whole_archive_flags
                                                                  )
                                                                )
                                                              }
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                          (command.Simple
                                                            blame_tok: <Id.VSub_DollarName '$SED'>
                                                            more_env: []
                                                            words: [
                                                              {($ Id.VSub_DollarName SED)}
                                                              {(SQ <'s|,| |g'>)}
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        ]
                                                        ops: [<Id.Op_Pipe _>]
                                                      )
                                                    right: <Id.Backtick_Right '`'>
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'reload_conv_objs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'reload_conv_objs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'reload_conv_objs='>
                                              name: reload_conv_objs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName reload_objs) 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\ '>
                                                ch: ' '
                                              ) ($ Id.VSub_DollarName tmp_whole_archive_flags)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [54320 54331]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'gentop='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'gentop='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'gentop='>
                                          name: gentop
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName output_objdir) <'/'> 
                                          (${ Id.VSub_Name obj) <x>
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.Simple
                                  blame_tok: <func_append>
                                  more_env: []
                                  words: [
                                    {<func_append>}
                                    {<generated>}
                                    {(DQ <' '> ($ Id.VSub_DollarName gentop))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_extract_archives>
                                  more_env: []
                                  words: [
                                    {<func_extract_archives>}
                                    {($ Id.VSub_DollarName gentop)}
                                    {($ Id.VSub_DollarName convenience)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'reload_conv_objs='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'reload_conv_objs='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'reload_conv_objs='>
                                          name: reload_conv_objs
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName reload_objs) <' '> 
                                            ($ Id.VSub_DollarName func_extract_archives_result)
                                          )
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          spids: [54306 54317]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<yes>}
                            {<Id.Lit_Equals '='>}
                            {(DQ ($ Id.VSub_DollarName build_libtool_libs))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'libobjs='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'libobjs='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libobjs='> name:libobjs)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName non_pic_objects)}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'reload_objs='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'reload_objs='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'reload_objs='>
                              name: reload_objs
                            )
                          op: assign_op.Equal
                          rhs: 
                            {($ Id.VSub_DollarName objs) ($ Id.VSub_DollarName old_deplibs) (SQ <' '>) 
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <Id.VSub_DollarName '$ECHO'>
                                        more_env: []
                                        words: [
                                          {($ Id.VSub_DollarName ECHO)}
                                          {(DQ ($ Id.VSub_DollarName libobjs))}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <Id.VSub_DollarName '$SP2NL'>
                                        more_env: []
                                        words: [{($ Id.VSub_DollarName SP2NL)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                        more_env: []
                                        words: [
                                          {($ Id.VSub_DollarName SED)}
                                          {
                                            (DQ <'/'> <Id.Lit_BadBackslash '\\'> <.> 
                                              ($ Id.VSub_DollarName libext) <Id.Lit_Dollar '$'> <'/d; /'> <Id.Lit_BadBackslash '\\'> <.lib> <Id.Lit_Dollar '$'> <'/d; '> 
                                              ($ Id.VSub_DollarName lo2o)
                                            )
                                          }
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <Id.VSub_DollarName '$NL2SP'>
                                        more_env: []
                                        words: [{($ Id.VSub_DollarName NL2SP)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              ) (SQ <' '>) ($ Id.VSub_DollarName reload_conv_objs)
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'output='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'output='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output='> name:output)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName obj)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_execute_cmds>
                      more_env: []
                      words: [
                        {<func_execute_cmds>}
                        {(DQ ($ Id.VSub_DollarName reload_cmds))}
                        {(SQ <'exit $?'>)}
                      ]
                      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>} {<-z>} {(DQ ($ Id.VSub_DollarName libobj))}]
                                      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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-n>}
                                                {(DQ ($ Id.VSub_DollarName gentop))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_show_eval>
                                      more_env: []
                                      words: [{<func_show_eval>} {(SQ <'${RM}r "$gentop"'>)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [54534 54545]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
                            )
                          ]
                          spids: [54520 54531]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<yes>}
                            {<Id.Lit_Equals '='>}
                            {(DQ ($ Id.VSub_DollarName build_libtool_libs))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-n>}
                                                {(DQ ($ Id.VSub_DollarName gentop))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_show_eval>
                                      more_env: []
                                      words: [{<func_show_eval>} {(SQ <'${RM}r "$gentop"'>)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [54583 54594]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName pic_flag))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<default>}
                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_DollarName pic_mode))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'reload_objs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'reload_objs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'reload_objs='>
                                      name: reload_objs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName libobjs) <' '> 
                                        ($ Id.VSub_DollarName reload_conv_objs)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'output='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'output='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output='> name:output)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName libobj)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_execute_cmds>
                              more_env: []
                              words: [
                                {<func_execute_cmds>}
                                {(DQ ($ Id.VSub_DollarName reload_cmds))}
                                {(SQ <'exit $?'>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [54633 54657]
                        )
                      ]
                      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: <test>
                                      more_env: []
                                      words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName gentop))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <func_show_eval>
                              more_env: []
                              words: [{<func_show_eval>} {(SQ <'${RM}r "$gentop"'>)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [54691 54702]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <prog>
                  pattern: (pat.Words words:[{<prog>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_stripname>
                              more_env: []
                              words: [
                                {<func_stripname>}
                                {(SQ )}
                                {(SQ <.exe>)}
                                {(DQ ($ Id.VSub_DollarName output))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'output='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'output='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output='> name:output)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_stripname_result) <.exe>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName vinfo))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <func_warning>
                          more_env: []
                          words: [{<func_warning>} {(DQ <'\'-version-info\' is ignored for programs'>)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName release))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <func_warning>
                          more_env: []
                          words: [{<func_warning>} {(DQ <'\'-release\' is ignored for programs'>)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.VSub_DollarName '$preload'>
                          more_env: []
                          words: [{($ Id.VSub_DollarName preload)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<unknown> <Id.Lit_Comma ','> <unknown> <Id.Lit_Comma ','> <unknown>}
                            {<Id.Lit_Equals '='>}
                            {
                              (DQ ($ Id.VSub_DollarName dlopen_support) <','> 
                                ($ Id.VSub_DollarName dlopen_self) <','> ($ Id.VSub_DollarName dlopen_self_static)
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <func_warning>
                          more_env: []
                          words: [
                            {<func_warning>}
                            {(DQ <'\'LT_INIT([dlopen])\' not used. Assuming no dlopen support.'>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-rhapsody> <Id.Lit_Star '*'>}
                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-darwin1.> 
                                  <Id.Lit_LBracket '['> <012> <Id.Lit_RBracket ']'>
                                }
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'compile_deplibs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'compile_deplibs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'compile_deplibs='>
                                      name: compile_deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName ECHO)}
                                                  {(DQ <' '> ($ Id.VSub_DollarName compile_deplibs))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {(SQ <'s/ -lc / System.ltframework /'>)}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'finalize_deplibs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'finalize_deplibs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'finalize_deplibs='>
                                      name: finalize_deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName ECHO)}
                                                  {(DQ <' '> ($ Id.VSub_DollarName finalize_deplibs))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {(SQ <'s/ -lc / System.ltframework /'>)}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-darwin> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<CXX>}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName tagname))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {
                                              (BracedVarSub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name MACOSX_DEPLOYMENT_TARGET>
                                                var_name: MACOSX_DEPLOYMENT_TARGET
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VTest_Hyphen _>
                                                    arg_word: {<10.0>}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <10.>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<10.> <Id.Lit_LBracket '['> <0123> 
                                                  <Id.Lit_RBracket ']'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<compile_command>}
                                                {(DQ <' '> ($ Id.VSub_DollarName wl) <-bind_at_load>)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<finalize_command>}
                                                {(DQ <' '> ($ Id.VSub_DollarName wl) <-bind_at_load>)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  spids: [54941 54954]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'compile_deplibs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'compile_deplibs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'compile_deplibs='>
                                      name: compile_deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName ECHO)}
                                                  {(DQ <' '> ($ Id.VSub_DollarName compile_deplibs))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {
                                                    (SQ 
                                                      <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                      >
                                                    )
                                                  }
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'finalize_deplibs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'finalize_deplibs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'finalize_deplibs='>
                                      name: finalize_deplibs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName ECHO)}
                                                  {(DQ <' '> ($ Id.VSub_DollarName finalize_deplibs))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {
                                                    (SQ 
                                                      <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                      >
                                                    )
                                                  }
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'new_libs='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'new_libs='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new_libs='> name:new_libs)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [path]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName notinst_path)}])
                      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: {(DQ <' '> ($ Id.VSub_DollarName new_libs) <' '>)}
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> 
                                          (DQ <' -L'> ($ Id.VSub_DollarName path) <'/'> 
                                            ($ Id.VSub_DollarName objdir) <' '>
                                          ) <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName compile_deplibs) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' -L'> ($ Id.VSub_DollarName path) <'/'> 
                                                    ($ Id.VSub_DollarName objdir) <' '>
                                                  ) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<new_libs>}
                                                {
                                                  (DQ <' -L'> ($ Id.VSub_DollarName path) <'/'> 
                                                    ($ Id.VSub_DollarName objdir)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [deplib]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName compile_deplibs)}])
                      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 deplib)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <-L>
                                  pattern: (pat.Words words:[{<-L> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName new_libs) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName deplib) <' '>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<new_libs>}
                                                {(DQ <' '> ($ Id.VSub_DollarName deplib))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<new_libs>}
                                        {(DQ <' '> ($ Id.VSub_DollarName deplib))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'compile_deplibs='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'compile_deplibs='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'compile_deplibs='>
                              name: compile_deplibs
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName new_libs)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_append>
                      more_env: []
                      words: [
                        {<func_append>}
                        {<compile_command>}
                        {(DQ <' '> ($ Id.VSub_DollarName compile_deplibs))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <func_append>
                      more_env: []
                      words: [
                        {<func_append>}
                        {<finalize_command>}
                        {(DQ <' '> ($ Id.VSub_DollarName finalize_deplibs))}
                      ]
                      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>}
                                        {<-n>}
                                        {
                                          (DQ ($ Id.VSub_DollarName rpath) 
                                            ($ Id.VSub_DollarName xrpath)
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [libdir]
                              iterable: 
                                (for_iter.Words
                                  words: [
                                    {($ Id.VSub_DollarName rpath)}
                                    {($ Id.VSub_DollarName xrpath)}
                                  ]
                                )
                              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: {(DQ ($ Id.VSub_DollarName finalize_rpath) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName libdir) <' '>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<finalize_rpath>}
                                                {(DQ <' '> ($ Id.VSub_DollarName libdir))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          spids: [55289 55301]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'rpath='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'rpath='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rpath='> name:rpath)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'hardcode_libdirs='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'hardcode_libdirs='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'hardcode_libdirs='>
                              name: hardcode_libdirs
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [libdir]
                      iterable: 
                        (for_iter.Words
                          words: [
                            {($ Id.VSub_DollarName compile_rpath)}
                            {($ Id.VSub_DollarName finalize_rpath)}
                          ]
                        )
                      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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-n>}
                                                {
                                                  (DQ 
                                                    ($ Id.VSub_DollarName hardcode_libdir_flag_spec)
                                                  )
                                                }
                                              ]
                                              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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-n>}
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
hardcode_libdir_separator
                                                            )
                                                          )
                                                        }
                                                      ]
                                                      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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-z>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
hardcode_libdirs
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'hardcode_libdirs='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'hardcode_libdirs='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 'hardcode_libdirs='>
                                                              name: hardcode_libdirs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName libdir)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [55425 55436]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: 
                                                    (case_arg.Word
                                                      w: 
                                                        {
                                                          ($ Id.VSub_DollarName 
hardcode_libdir_separator
                                                          ) ($ Id.VSub_DollarName hardcode_libdirs) ($ Id.VSub_DollarName hardcode_libdir_separator)
                                                        }
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <Id.Lit_Star '*'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
hardcode_libdir_separator
                                                                ) ($ Id.VSub_DollarName libdir) ($ Id.VSub_DollarName hardcode_libdir_separator)
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: []
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                    (CaseArm
                                                      left: <Id.Lit_Star '*'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [{<Id.Lit_Star '*'>}]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <func_append>
                                                          more_env: []
                                                          words: [
                                                            {<func_append>}
                                                            {<hardcode_libdirs>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
hardcode_libdir_separator
                                                                ) ($ Id.VSub_DollarName libdir)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          spids: [55411 55422]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <eval>
                                          more_env: []
                                          words: [
                                            {<eval>}
                                            {<Id.Lit_VarLike 'flag='> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\"'>
                                                ch: '"'
                                              ) ($ Id.VSub_DollarName hardcode_libdir_flag_spec) 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\"'>
                                                ch: '"'
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <func_append>
                                          more_env: []
                                          words: [
                                            {<func_append>}
                                            {<rpath>}
                                            {(DQ <' '> ($ Id.VSub_DollarName flag))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [55397 55408]
                                )
                                (IfArm
                                  keyword: <Id.KW_Elif elif>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-n>}
                                                {(DQ ($ Id.VSub_DollarName runpath_var))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ ($ Id.VSub_DollarName perm_rpath) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName libdir) <' '>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<perm_rpath>}
                                                {(DQ <' '> ($ Id.VSub_DollarName libdir))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  spids: [55519 55530]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-cygwin> 
                                          <Id.Lit_Star '*'>
                                        }
                                        {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-mingw> 
                                          <Id.Lit_Star '*'>
                                        }
                                        {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-pw32> 
                                          <Id.Lit_Star '*'>
                                        }
                                        {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-os2> 
                                          <Id.Lit_Star '*'>
                                        }
                                        {<Id.Lit_Star '*'> <-cegcc> <Id.Lit_Star '*'>}
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'testbindir='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'testbindir='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'testbindir='>
                                              name: testbindir
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName ECHO)}
                                                          {(DQ ($ Id.VSub_DollarName libdir))}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName SED)}
                                                          {<-e>}
                                                          {(SQ <'s*/lib$*/bin*'>)}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {<Id.Lit_Colon ':'> ($ Id.VSub_DollarName dllsearchpath) 
                                              <Id.Lit_Colon ':'>
                                            }
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <':'> ($ Id.VSub_DollarName libdir) <':'>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Colon ':'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'dllsearchpath='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'dllsearchpath='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dllsearchpath='>
                                                      name: dllsearchpath
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName libdir)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<dllsearchpath>}
                                                {(DQ <':'> ($ Id.VSub_DollarName libdir))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {<Id.Lit_Colon ':'> ($ Id.VSub_DollarName dllsearchpath) 
                                              <Id.Lit_Colon ':'>
                                            }
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <':'> ($ Id.VSub_DollarName testbindir) <':'>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Colon ':'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'dllsearchpath='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'dllsearchpath='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dllsearchpath='>
                                                      name: dllsearchpath
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName testbindir)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<dllsearchpath>}
                                                {(DQ <':'> ($ Id.VSub_DollarName testbindir))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-n>}
                                            {(DQ ($ Id.VSub_DollarName hardcode_libdir_separator))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-n>}
                                            {(DQ ($ Id.VSub_DollarName hardcode_libdirs))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'libdir='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'libdir='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libdir='> name:libdir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName hardcode_libdirs)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {<Id.Lit_VarLike 'rpath='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                    ch: '"'
                                  )
                                }
                                {($ Id.VSub_DollarName hardcode_libdir_flag_spec) 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                    ch: '"'
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [55750 55772]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'compile_rpath='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'compile_rpath='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'compile_rpath='>
                              name: compile_rpath
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName rpath)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'rpath='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'rpath='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rpath='> name:rpath)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'hardcode_libdirs='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'hardcode_libdirs='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'hardcode_libdirs='>
                              name: hardcode_libdirs
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [libdir]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName finalize_rpath)}])
                      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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-n>}
                                                {
                                                  (DQ 
                                                    ($ Id.VSub_DollarName hardcode_libdir_flag_spec)
                                                  )
                                                }
                                              ]
                                              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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-n>}
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
hardcode_libdir_separator
                                                            )
                                                          )
                                                        }
                                                      ]
                                                      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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-z>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
hardcode_libdirs
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'hardcode_libdirs='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'hardcode_libdirs='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 'hardcode_libdirs='>
                                                              name: hardcode_libdirs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName libdir)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [55842 55853]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: 
                                                    (case_arg.Word
                                                      w: 
                                                        {
                                                          ($ Id.VSub_DollarName 
hardcode_libdir_separator
                                                          ) ($ Id.VSub_DollarName hardcode_libdirs) ($ Id.VSub_DollarName hardcode_libdir_separator)
                                                        }
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <Id.Lit_Star '*'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
hardcode_libdir_separator
                                                                ) ($ Id.VSub_DollarName libdir) ($ Id.VSub_DollarName hardcode_libdir_separator)
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: []
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                    (CaseArm
                                                      left: <Id.Lit_Star '*'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [{<Id.Lit_Star '*'>}]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <func_append>
                                                          more_env: []
                                                          words: [
                                                            {<func_append>}
                                                            {<hardcode_libdirs>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
hardcode_libdir_separator
                                                                ) ($ Id.VSub_DollarName libdir)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          spids: [55828 55839]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <eval>
                                          more_env: []
                                          words: [
                                            {<eval>}
                                            {<Id.Lit_VarLike 'flag='> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\"'>
                                                ch: '"'
                                              ) ($ Id.VSub_DollarName hardcode_libdir_flag_spec) 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\"'>
                                                ch: '"'
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <func_append>
                                          more_env: []
                                          words: [
                                            {<func_append>}
                                            {<rpath>}
                                            {(DQ <' '> ($ Id.VSub_DollarName flag))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [55814 55825]
                                )
                                (IfArm
                                  keyword: <Id.KW_Elif elif>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-n>}
                                                {(DQ ($ Id.VSub_DollarName runpath_var))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ ($ Id.VSub_DollarName finalize_perm_rpath) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName libdir) <' '>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<finalize_perm_rpath>}
                                                {(DQ <' '> ($ Id.VSub_DollarName libdir))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  spids: [55936 55947]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-n>}
                                            {(DQ ($ Id.VSub_DollarName hardcode_libdir_separator))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-n>}
                                            {(DQ ($ Id.VSub_DollarName hardcode_libdirs))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'libdir='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'libdir='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libdir='> name:libdir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName hardcode_libdirs)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {<Id.Lit_VarLike 'rpath='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                    ch: '"'
                                  )
                                }
                                {($ Id.VSub_DollarName hardcode_libdir_flag_spec) 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                    ch: '"'
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [56000 56022]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'finalize_rpath='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'finalize_rpath='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'finalize_rpath='>
                              name: finalize_rpath
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName rpath)}
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName libobjs))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<yes>}
                                            {<Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_DollarName build_old_libs))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'compile_command='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'compile_command='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'compile_command='>
                                      name: compile_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName ECHO)}
                                                  {(DQ ($ Id.VSub_DollarName compile_command))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SP2NL'>
                                                more_env: []
                                                words: [{($ Id.VSub_DollarName SP2NL)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {(DQ ($ Id.VSub_DollarName lo2o))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$NL2SP'>
                                                more_env: []
                                                words: [{($ Id.VSub_DollarName NL2SP)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'finalize_command='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'finalize_command='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'finalize_command='>
                                      name: finalize_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName ECHO)}
                                                  {(DQ ($ Id.VSub_DollarName finalize_command))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SP2NL'>
                                                more_env: []
                                                words: [{($ Id.VSub_DollarName SP2NL)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {(DQ ($ Id.VSub_DollarName lo2o))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$NL2SP'>
                                                more_env: []
                                                words: [{($ Id.VSub_DollarName NL2SP)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [56046 56069]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_generate_dlsyms>
                      more_env: []
                      words: [
                        {<func_generate_dlsyms>}
                        {(DQ ($ Id.VSub_DollarName outputname))}
                        {(DQ <'@PROGRAM@'>)}
                        {<false>}
                      ]
                      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>} {<-n>} {(DQ ($ Id.VSub_DollarName prelink_cmds))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <func_execute_cmds>
                              more_env: []
                              words: [
                                {<func_execute_cmds>}
                                {(DQ ($ Id.VSub_DollarName prelink_cmds))}
                                {(SQ <'exit $?'>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [56154 56165]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'wrappers_required='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'wrappers_required='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'wrappers_required='>
                              name: wrappers_required
                            )
                          op: assign_op.Equal
                          rhs: {<Id.Lit_Colon ':'>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> <cegcc> <Id.Lit_Star '*'>}
                                {<Id.Lit_Star '*'> <mingw32ce> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'wrappers_required='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'wrappers_required='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'wrappers_required='>
                                      name: wrappers_required
                                    )
                                  op: assign_op.Equal
                                  rhs: {<false>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}
                                {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<yes>}
                                    {<Id.Lit_Equals '='>}
                                    {(DQ ($ Id.VSub_DollarName build_libtool_libs))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'wrappers_required='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'wrappers_required='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'wrappers_required='>
                                          name: wrappers_required
                                        )
                                      op: assign_op.Equal
                                      rhs: {<false>}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<no>}
                                                    {<Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName need_relink))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<yes>}
                                                    {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName build_libtool_libs))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'wrappers_required='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'wrappers_required='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'wrappers_required='>
                                              name: wrappers_required
                                            )
                                          op: assign_op.Equal
                                          rhs: {<false>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [56253 56279]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.VSub_DollarName '$wrappers_required'>
                          more_env: []
                          words: [{($ Id.VSub_DollarName wrappers_required)}]
                          redirects: []
                          do_fork: T
                        )
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'compile_command='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'compile_command='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'compile_command='>
                                      name: compile_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName ECHO)}
                                                  {(DQ ($ Id.VSub_DollarName compile_command))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {(SQ <'s%@OUTPUT@%'>) 
                                                    (DQ ($ Id.VSub_DollarName output)) (SQ <'%g'>)
                                                  }
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'link_command='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'link_command='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'link_command='>
                                      name: link_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName compile_command) 
                                      ($ Id.VSub_DollarName compile_rpath)
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'exit_status='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'exit_status='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'exit_status='>
                                      name: exit_status
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_show_eval>
                              more_env: []
                              words: [
                                {<func_show_eval>}
                                {(DQ ($ Id.VSub_DollarName link_command))}
                                {(SQ <'exit_status=$?'>)}
                              ]
                              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>}
                                                {<-n>}
                                                {(DQ ($ Id.VSub_DollarName postlink_cmds))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_to_tool_file>
                                      more_env: []
                                      words: [{<func_to_tool_file>} {(DQ ($ Id.VSub_DollarName output))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'postlink_cmds='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'postlink_cmds='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'postlink_cmds='>
                                              name: postlink_cmds
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <func_echo_all>
                                                        more_env: []
                                                        words: [
                                                          {<func_echo_all>}
                                                          {(DQ ($ Id.VSub_DollarName postlink_cmds))}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName SED)}
                                                          {<-e>}
                                                          {(SQ <'s%@OUTPUT@%'>) 
                                                            (DQ ($ Id.VSub_DollarName output)) (SQ <'%g'>)
                                                          }
                                                          {<-e>}
                                                          {(SQ <'s%@TOOL_OUTPUT@%'>) 
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
func_to_tool_file_result
                                                              )
                                                            ) (SQ <'%g'>)
                                                          }
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_execute_cmds>
                                      more_env: []
                                      words: [
                                        {<func_execute_cmds>}
                                        {(DQ ($ Id.VSub_DollarName postlink_cmds))}
                                        {(SQ <'exit $?'>)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [56358 56369]
                                )
                              ]
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-f>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                                    (${ Id.VSub_Name outputname) <S.> ($ Id.VSub_DollarName objext)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_show_eval>
                                      more_env: []
                                      words: [
                                        {<func_show_eval>}
                                        {(SQ <'$RM "$output_objdir/${outputname}S.$objext"'>)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [56438 56455]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName exit_status)}
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (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>}
                                        {<-n>}
                                        {
                                          (DQ ($ Id.VSub_DollarName compile_shlibpath) 
                                            ($ Id.VSub_DollarName finalize_shlibpath)
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'compile_command='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'compile_command='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'compile_command='>
                                      name: compile_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName shlibpath_var) <'='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        ) ($ Id.VSub_DollarName compile_shlibpath) ($ Id.VSub_DollarName finalize_shlibpath) 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                          ch: '$'
                                        ) ($ Id.VSub_DollarName shlibpath_var) 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        ) <' '> ($ Id.VSub_DollarName compile_command)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [56478 56490]
                        )
                      ]
                      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: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<-n>}
                                        {(DQ ($ Id.VSub_DollarName finalize_shlibpath))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'finalize_command='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'finalize_command='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'finalize_command='>
                                      name: finalize_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName shlibpath_var) <'='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        ) ($ Id.VSub_DollarName finalize_shlibpath) 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                          ch: '$'
                                        ) ($ Id.VSub_DollarName shlibpath_var) 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                          ch: '"'
                                        ) <' '> ($ Id.VSub_DollarName finalize_command)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [56511 56522]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'compile_var='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'compile_var='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'compile_var='>
                              name: compile_var
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'finalize_var='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'finalize_var='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'finalize_var='>
                              name: finalize_var
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      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: <test>
                                      more_env: []
                                      words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName runpath_var))}]
                                      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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-n>}
                                                {(DQ ($ Id.VSub_DollarName perm_rpath))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'rpath='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'rpath='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'rpath='>
                                              name: rpath
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [dir]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName perm_rpath)}]
                                        )
                                      semi_tok: <Id.Op_Semi _>
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<rpath>}
                                                {(DQ ($ Id.VSub_DollarName dir) <':'>)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'compile_var='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'compile_var='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'compile_var='>
                                              name: compile_var
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName runpath_var) <'='> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                  ch: '"'
                                                ) ($ Id.VSub_DollarName rpath) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                                ($ Id.VSub_DollarName runpath_var) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [56563 56574]
                                )
                              ]
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-n>}
                                                {(DQ ($ Id.VSub_DollarName finalize_perm_rpath))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'rpath='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'rpath='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'rpath='>
                                              name: rpath
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [dir]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName finalize_perm_rpath)}]
                                        )
                                      semi_tok: <Id.Op_Semi _>
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<rpath>}
                                                {(DQ ($ Id.VSub_DollarName dir) <':'>)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'finalize_var='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'finalize_var='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'finalize_var='>
                                              name: finalize_var
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName runpath_var) <'='> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                  ch: '"'
                                                ) ($ Id.VSub_DollarName rpath) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                                ($ Id.VSub_DollarName runpath_var) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [56625 56636]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          spids: [56549 56560]
                        )
                      ]
                      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: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<yes>}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName no_install))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'link_command='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'link_command='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'link_command='>
                                      name: link_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName compile_var) 
                                      ($ Id.VSub_DollarName compile_command) ($ Id.VSub_DollarName compile_rpath)
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'link_command='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'link_command='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'link_command='>
                                      name: link_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName ECHO)}
                                                  {(DQ ($ Id.VSub_DollarName link_command))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {(SQ <'s%@OUTPUT@%'>) 
                                                    (DQ ($ Id.VSub_DollarName output)) (SQ <'%g'>)
                                                  }
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                  more_env: []
                                  words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$RM'>
                                  more_env: []
                                  words: [{($ Id.VSub_DollarName RM)} {($ Id.VSub_DollarName output)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                            (command.Simple
                              blame_tok: <func_show_eval>
                              more_env: []
                              words: [
                                {<func_show_eval>}
                                {(DQ ($ Id.VSub_DollarName link_command))}
                                {(SQ <'exit $?'>)}
                              ]
                              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>}
                                                {<-n>}
                                                {(DQ ($ Id.VSub_DollarName postlink_cmds))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_to_tool_file>
                                      more_env: []
                                      words: [{<func_to_tool_file>} {(DQ ($ Id.VSub_DollarName output))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'postlink_cmds='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'postlink_cmds='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'postlink_cmds='>
                                              name: postlink_cmds
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <func_echo_all>
                                                        more_env: []
                                                        words: [
                                                          {<func_echo_all>}
                                                          {(DQ ($ Id.VSub_DollarName postlink_cmds))}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName SED)}
                                                          {<-e>}
                                                          {(SQ <'s%@OUTPUT@%'>) 
                                                            (DQ ($ Id.VSub_DollarName output)) (SQ <'%g'>)
                                                          }
                                                          {<-e>}
                                                          {(SQ <'s%@TOOL_OUTPUT@%'>) 
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
func_to_tool_file_result
                                                              )
                                                            ) (SQ <'%g'>)
                                                          }
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_execute_cmds>
                                      more_env: []
                                      words: [
                                        {<func_execute_cmds>}
                                        {(DQ ($ Id.VSub_DollarName postlink_cmds))}
                                        {(SQ <'exit $?'>)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [56776 56787]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
                            )
                          ]
                          spids: [56691 56704]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: 
                        (case_arg.Word
                          w: 
                            {($ Id.VSub_DollarName hardcode_action) <Id.Lit_Comma ','> 
                              ($ Id.VSub_DollarName fast_install)
                            }
                        )
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <relink>
                          pattern: 
                            (pat.Words
                              words: [{<relink> <Id.Lit_Comma ','> <Id.Lit_Star '*'>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'link_command='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'link_command='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'link_command='>
                                      name: link_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName compile_var) 
                                      ($ Id.VSub_DollarName compile_command) ($ Id.VSub_DollarName compile_rpath)
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'relink_command='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'relink_command='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'relink_command='>
                                      name: relink_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName finalize_var) 
                                      ($ Id.VSub_DollarName finalize_command) ($ Id.VSub_DollarName finalize_rpath)
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_warning>
                              more_env: []
                              words: [
                                {<func_warning>}
                                {(DQ <'this platform does not like uninstalled shared libraries'>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <func_warning>
                              more_env: []
                              words: [
                                {<func_warning>}
                                {
                                  (DQ <'\''> ($ Id.VSub_DollarName output) 
                                    <'\' will be relinked during installation'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <Id.Lit_Comma ','> <yes>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'link_command='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'link_command='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'link_command='>
                                      name: link_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName finalize_var) 
                                      ($ Id.VSub_DollarName compile_command) ($ Id.VSub_DollarName finalize_rpath)
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'relink_command='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'relink_command='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'relink_command='>
                                      name: relink_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName ECHO)}
                                                  {
                                                    (DQ ($ Id.VSub_DollarName compile_var) 
                                                      ($ Id.VSub_DollarName compile_command) ($ Id.VSub_DollarName compile_rpath)
                                                    )
                                                  }
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {(SQ <'s%@OUTPUT@%$progdir/$file%g'>)}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <Id.Lit_Comma ','> <no>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'link_command='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'link_command='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'link_command='>
                                      name: link_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName compile_var) 
                                      ($ Id.VSub_DollarName compile_command) ($ Id.VSub_DollarName compile_rpath)
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'relink_command='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'relink_command='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'relink_command='>
                                      name: relink_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName finalize_var) 
                                      ($ Id.VSub_DollarName finalize_command) ($ Id.VSub_DollarName finalize_rpath)
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [{<Id.Lit_Star '*'> <Id.Lit_Comma ','> <needless>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'link_command='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'link_command='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'link_command='>
                                      name: link_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName finalize_var) 
                                      ($ Id.VSub_DollarName compile_command) ($ Id.VSub_DollarName finalize_rpath)
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'relink_command='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'relink_command='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'relink_command='>
                                      name: relink_command
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'link_command='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'link_command='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'link_command='>
                              name: link_command
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <Id.VSub_DollarName '$ECHO'>
                                        more_env: []
                                        words: [
                                          {($ Id.VSub_DollarName ECHO)}
                                          {(DQ ($ Id.VSub_DollarName link_command))}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                        more_env: []
                                        words: [
                                          {($ Id.VSub_DollarName SED)}
                                          {(SQ <'s%@OUTPUT@%'>) 
                                            (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                              ($ Id.VSub_DollarName outputname)
                                            ) (SQ <'%g'>)
                                          }
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                          more_env: []
                          words: [{($ Id.VSub_DollarName opt_dry_run)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <Id.VSub_DollarName '$RM'>
                          more_env: []
                          words: [
                            {($ Id.VSub_DollarName RM)}
                            {($ Id.VSub_DollarName output)}
                            {($ Id.VSub_DollarName output_objdir) <'/'> 
                              ($ Id.VSub_DollarName outputname)
                            }
                            {($ Id.VSub_DollarName output_objdir) <'/lt-'> 
                              ($ Id.VSub_DollarName outputname)
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.Simple
                      blame_tok: <func_show_eval>
                      more_env: []
                      words: [
                        {<func_show_eval>}
                        {(DQ ($ Id.VSub_DollarName link_command))}
                        {(SQ <'exit $?'>)}
                      ]
                      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>} {<-n>} {(DQ ($ Id.VSub_DollarName postlink_cmds))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <func_to_tool_file>
                              more_env: []
                              words: [
                                {<func_to_tool_file>}
                                {
                                  (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                    ($ Id.VSub_DollarName outputname)
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'postlink_cmds='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'postlink_cmds='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'postlink_cmds='>
                                      name: postlink_cmds
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <func_echo_all>
                                                more_env: []
                                                words: [
                                                  {<func_echo_all>}
                                                  {(DQ ($ Id.VSub_DollarName postlink_cmds))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {<-e>}
                                                  {(SQ <'s%@OUTPUT@%'>) 
                                                    (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                                      ($ Id.VSub_DollarName outputname)
                                                    ) (SQ <'%g'>)
                                                  }
                                                  {<-e>}
                                                  {(SQ <'s%@TOOL_OUTPUT@%'>) 
                                                    (DQ 
                                                      ($ Id.VSub_DollarName func_to_tool_file_result)
                                                    ) (SQ <'%g'>)
                                                  }
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_execute_cmds>
                              more_env: []
                              words: [
                                {<func_execute_cmds>}
                                {(DQ ($ Id.VSub_DollarName postlink_cmds))}
                                {(SQ <'exit $?'>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [57063 57074]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_verbose>
                      more_env: []
                      words: [{<func_verbose>} {(DQ <'creating '> ($ Id.VSub_DollarName output))}]
                      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>}
                                        {<-n>}
                                        {(DQ ($ Id.VSub_DollarName relink_command))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [var]
                              iterable: 
                                (for_iter.Words
                                  words: [{($ Id.VSub_DollarName variables_saved_for_relink)}]
                                )
                              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: <eval>
                                                      more_env: []
                                                      words: [
                                                        {<eval>}
                                                        {<test>}
                                                        {<-z>}
                                                        {
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\"'>
                                                            ch: '"'
                                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <Id.Lit_LBrace '{'> 
                                                          ($ Id.VSub_DollarName var) <Id.Lit_Other '+'> <set> <Id.Lit_RBrace '}'> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\"'>
                                                            ch: '"'
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'relink_command='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'relink_command='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'relink_command='>
                                                      name: relink_command
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ <'{ test -z '> 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\"'>
                                                          ch: '"'
                                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'{'> ($ Id.VSub_DollarName var) 
                                                        <'+set}'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' || '> 
                                                        ($ Id.VSub_DollarName lt_unset) <' '> ($ Id.VSub_DollarName var) <' || { '> ($ Id.VSub_DollarName var) <'=; export '> 
                                                        ($ Id.VSub_DollarName var) <'; }; }; '> ($ Id.VSub_DollarName relink_command)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [57190 57208]
                                        )
                                        (IfArm
                                          keyword: <Id.KW_Elif elif>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [
                                                        {<eval>}
                                                        {<Id.Lit_VarLike 'var_value='> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\$'>
                                                            ch: '$'
                                                          ) ($ Id.VSub_DollarName var)
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-z>}
                                                        {(DQ ($ Id.VSub_DollarName var_value))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'relink_command='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'relink_command='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'relink_command='>
                                                      name: relink_command
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName var) <'=; export '> 
                                                        ($ Id.VSub_DollarName var) <'; '> ($ Id.VSub_DollarName relink_command)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [57233 57251]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <func_quote_for_eval>
                                          more_env: []
                                          words: [
                                            {<func_quote_for_eval>}
                                            {(DQ ($ Id.VSub_DollarName var_value))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'relink_command='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'relink_command='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'relink_command='>
                                                  name: relink_command
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName var) <'='> 
                                                    ($ Id.VSub_DollarName func_quote_for_eval_result) <'; export '> ($ Id.VSub_DollarName var) <'; '> ($ Id.VSub_DollarName relink_command)
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'relink_command='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'relink_command='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'relink_command='>
                                      name: relink_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <'(cd '> 
                                        (CommandSub
                                          left_token: <Id.Left_Backtick '`'>
                                          child: 
                                            (command.Simple
                                              blame_tok: <pwd>
                                              more_env: []
                                              words: [{<pwd>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          right: <Id.Backtick_Right '`'>
                                        ) <'; '> ($ Id.VSub_DollarName relink_command) <')'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'relink_command='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'relink_command='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'relink_command='>
                                      name: relink_command
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName ECHO)}
                                                  {(DQ ($ Id.VSub_DollarName relink_command))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {(DQ ($ Id.VSub_DollarName sed_quote_subst))}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [57160 57171]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                          more_env: []
                          words: [{($ Id.VSub_DollarName opt_dry_run)}]
                          redirects: []
                          do_fork: T
                        )
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName output)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.exe>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_stripname>
                                      more_env: []
                                      words: [
                                        {<func_stripname>}
                                        {(SQ )}
                                        {(SQ <.exe>)}
                                        {(DQ ($ Id.VSub_DollarName output))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'output='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'output='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'output='>
                                              name: output
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [{<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'exeext='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'exeext='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'exeext='>
                                              name: exeext
                                            )
                                          op: assign_op.Equal
                                          rhs: {<.exe>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_stripname>
                                      more_env: []
                                      words: [
                                        {<func_stripname>}
                                        {(SQ )}
                                        {(SQ <.exe>)}
                                        {(DQ ($ Id.VSub_DollarName outputname))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'outputname='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'outputname='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'outputname='>
                                              name: outputname
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'exeext='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'exeext='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'exeext='>
                                              name: exeext
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}
                                        {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_dirname_and_basename>
                                      more_env: []
                                      words: [
                                        {<func_dirname_and_basename>}
                                        {(DQ ($ Id.VSub_DollarName output))}
                                        {(DQ )}
                                        {(DQ <.>)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'output_name='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'output_name='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'output_name='>
                                              name: output_name
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_basename_result)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'output_path='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'output_path='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'output_path='>
                                              name: output_path
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_dirname_result)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'cwrappersource='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'cwrappersource='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'cwrappersource='>
                                              name: cwrappersource
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName output_path) <'/'> 
                                              ($ Id.VSub_DollarName objdir) <'/lt-'> ($ Id.VSub_DollarName output_name) <.c>
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'cwrapper='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'cwrapper='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'cwrapper='>
                                              name: cwrapper
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName output_path) <'/'> 
                                              ($ Id.VSub_DollarName output_name) <.exe>
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$RM'>
                                      more_env: []
                                      words: [
                                        {($ Id.VSub_DollarName RM)}
                                        {($ Id.VSub_DollarName cwrappersource)}
                                        {($ Id.VSub_DollarName cwrapper)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <trap>
                                      more_env: []
                                      words: [
                                        {<trap>}
                                        {
                                          (DQ ($ Id.VSub_DollarName RM) <' '> 
                                            ($ Id.VSub_DollarName cwrappersource) <' '> ($ Id.VSub_DollarName cwrapper) <'; exit '> ($ Id.VSub_DollarName EXIT_FAILURE)
                                          )
                                        }
                                        {<1>}
                                        {<2>}
                                        {<15>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_emit_cwrapperexe_src>
                                      more_env: []
                                      words: [{<func_emit_cwrapperexe_src>}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {($ Id.VSub_DollarName cwrappersource)}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                          more_env: []
                                          words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$LTCC'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName LTCC)}
                                                {($ Id.VSub_DollarName LTCFLAGS)}
                                                {<-o>}
                                                {($ Id.VSub_DollarName cwrapper)}
                                                {($ Id.VSub_DollarName cwrappersource)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$STRIP'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName STRIP)}
                                                {($ Id.VSub_DollarName cwrapper)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.Simple
                                      blame_tok: <func_ltwrapper_scriptname>
                                      more_env: []
                                      words: [
                                        {<func_ltwrapper_scriptname>}
                                        {($ Id.VSub_DollarName cwrapper)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$RM'>
                                      more_env: []
                                      words: [
                                        {($ Id.VSub_DollarName RM)}
                                        {($ Id.VSub_DollarName func_ltwrapper_scriptname_result)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <trap>
                                      more_env: []
                                      words: [
                                        {<trap>}
                                        {
                                          (DQ ($ Id.VSub_DollarName RM) <' '> 
                                            ($ Id.VSub_DollarName func_ltwrapper_scriptname_result) <'; exit '> ($ Id.VSub_DollarName EXIT_FAILURE)
                                          )
                                        }
                                        {<1>}
                                        {<2>}
                                        {<15>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                                          more_env: []
                                          words: [{($ Id.VSub_DollarName opt_dry_run)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {
                                                                  (DQ <x> ($ Id.VSub_DollarName build))
                                                                }
                                                                {<Id.Lit_Equals '='>}
                                                                {(DQ <x> ($ Id.VSub_DollarName host))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <Id.VSub_DollarName '$cwrapper'>
                                                      more_env: []
                                                      words: [
                                                        {($ Id.VSub_DollarName cwrapper)}
                                                        {<--lt-dump-script>}
                                                      ]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: 
                                                            {
                                                              ($ Id.VSub_DollarName 
func_ltwrapper_scriptname_result
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [57613 57630]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.Simple
                                                  blame_tok: <func_emit_wrapper>
                                                  more_env: []
                                                  words: [{<func_emit_wrapper>} {<no>}]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_Great '>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: 
                                                        {
                                                          ($ Id.VSub_DollarName 
func_ltwrapper_scriptname_result
                                                          )
                                                        }
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$RM'>
                                      more_env: []
                                      words: [
                                        {($ Id.VSub_DollarName RM)}
                                        {($ Id.VSub_DollarName output)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <trap>
                                      more_env: []
                                      words: [
                                        {<trap>}
                                        {
                                          (DQ ($ Id.VSub_DollarName RM) <' '> 
                                            ($ Id.VSub_DollarName output) <'; exit '> ($ Id.VSub_DollarName EXIT_FAILURE)
                                          )
                                        }
                                        {<1>}
                                        {<2>}
                                        {<15>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_emit_wrapper>
                                      more_env: []
                                      words: [{<func_emit_wrapper>} {<no>}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {($ Id.VSub_DollarName output)}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <chmod>
                                      more_env: []
                                      words: [
                                        {<chmod>}
                                        {<Id.Lit_Other '+'> <x>}
                                        {($ Id.VSub_DollarName output)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [oldlib]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName oldlibs)}])
              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 build_libtool_libs)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <convenience>
                          pattern: (pat.Words words:[{<convenience>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'oldobjs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'oldobjs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'oldobjs='>
                                      name: oldobjs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName libobjs_save) <' '> 
                                        ($ Id.VSub_DollarName symfileobj)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'addlibs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'addlibs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'addlibs='>
                                      name: addlibs
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName convenience)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'build_libtool_libs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'build_libtool_libs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'build_libtool_libs='>
                                      name: build_libtool_libs
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <module>
                          pattern: (pat.Words words:[{<module>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'oldobjs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'oldobjs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'oldobjs='>
                                      name: oldobjs
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName libobjs_save)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'addlibs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'addlibs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'addlibs='>
                                      name: addlibs
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName old_convenience)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'build_libtool_libs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'build_libtool_libs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'build_libtool_libs='>
                                      name: build_libtool_libs
                                    )
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'oldobjs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'oldobjs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'oldobjs='>
                                      name: oldobjs
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName old_deplibs) <' '> 
                                        ($ Id.VSub_DollarName non_pic_objects)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$preload'>
                                  more_env: []
                                  words: [{($ Id.VSub_DollarName preload)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-f>} {(DQ ($ Id.VSub_DollarName symfileobj))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_append>
                                  more_env: []
                                  words: [
                                    {<func_append>}
                                    {<oldobjs>}
                                    {(DQ <' '> ($ Id.VSub_DollarName symfileobj))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'addlibs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'addlibs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'addlibs='>
                                      name: addlibs
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName old_convenience)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      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: <test>
                                      more_env: []
                                      words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName addlibs))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'gentop='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'gentop='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'gentop='> name:gentop)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName output_objdir) <'/'> 
                                      (${ Id.VSub_Name outputname) <x>
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<generated>}
                                {(DQ <' '> ($ Id.VSub_DollarName gentop))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <func_extract_archives>
                              more_env: []
                              words: [
                                {<func_extract_archives>}
                                {($ Id.VSub_DollarName gentop)}
                                {($ Id.VSub_DollarName addlibs)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<oldobjs>}
                                {(DQ <' '> ($ Id.VSub_DollarName func_extract_archives_result))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [57844 57855]
                        )
                      ]
                      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.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-n>}
                                            {(DQ ($ Id.VSub_DollarName old_archive_from_new_cmds))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<yes>}
                                            {<Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_DollarName build_libtool_libs))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cmds='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cmds='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmds='> name:cmds)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName old_archive_from_new_cmds)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [57903 57926]
                        )
                      ]
                      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.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-n>}
                                            {(DQ ($ Id.VSub_DollarName dlprefiles))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'gentop='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'gentop='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'gentop='>
                                          name: gentop
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName output_objdir) <'/'> 
                                          (${ Id.VSub_Name outputname) <x>
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.Simple
                                  blame_tok: <func_append>
                                  more_env: []
                                  words: [
                                    {<func_append>}
                                    {<generated>}
                                    {(DQ <' '> ($ Id.VSub_DollarName gentop))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_extract_archives>
                                  more_env: []
                                  words: [
                                    {<func_extract_archives>}
                                    {($ Id.VSub_DollarName gentop)}
                                    {($ Id.VSub_DollarName dlprefiles)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <func_append>
                                  more_env: []
                                  words: [
                                    {<func_append>}
                                    {<oldobjs>}
                                    {(DQ <' '> ($ Id.VSub_DollarName func_extract_archives_result))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              spids: [57941 57952]
                            )
                          ]
                          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.Subshell
                                          left: <Id.Op_LParen _>
                                          child: 
                                            (command.Pipeline
                                              children: [
                                                (command.ForEach
                                                  keyword: <Id.KW_For for>
                                                  iter_names: [obj]
                                                  iterable: 
                                                    (for_iter.Words
                                                      words: [{($ Id.VSub_DollarName oldobjs)}]
                                                    )
                                                  body: 
                                                    (command.DoGroup
                                                      left: <Id.KW_Do do>
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <func_basename>
                                                          more_env: []
                                                          words: [
                                                            {<func_basename>}
                                                            {(DQ ($ Id.VSub_DollarName obj))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <Id.VSub_DollarName '$ECHO'>
                                                          more_env: []
                                                          words: [
                                                            {($ Id.VSub_DollarName ECHO)}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
func_basename_result
                                                                )
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      right: <Id.KW_Done done>
                                                    )
                                                  redirects: []
                                                )
                                                (command.Simple
                                                  blame_tok: <sort>
                                                  more_env: []
                                                  words: [{<sort>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <sort>
                                                  more_env: []
                                                  words: [{<sort>} {<-uc>}]
                                                  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
                                                )
                                              ]
                                              ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                            )
                                          right: <Id.Right_Subshell _>
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.Simple
                                  blame_tok: <Id.Lit_Colon ':'>
                                  more_env: []
                                  words: [{<Id.Lit_Colon ':'>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              spids: [58020 58069]
                            )
                          ]
                          else_kw: <Id.KW_Else else>
                          else_action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ 
                                    <'copying selected object files to avoid basename conflicts...'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'gentop='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'gentop='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'gentop='> name:gentop)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName output_objdir) <'/'> 
                                      (${ Id.VSub_Name outputname) <x>
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [
                                {<func_append>}
                                {<generated>}
                                {(DQ <' '> ($ Id.VSub_DollarName gentop))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <func_mkdir_p>
                              more_env: []
                              words: [{<func_mkdir_p>} {(DQ ($ Id.VSub_DollarName gentop))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'save_oldobjs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'save_oldobjs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'save_oldobjs='>
                                      name: save_oldobjs
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName oldobjs)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'oldobjs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'oldobjs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'oldobjs='>
                                      name: oldobjs
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'counter='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'counter='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'counter='>
                                      name: counter
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [obj]
                              iterable: 
                                (for_iter.Words
                                  words: [{($ Id.VSub_DollarName save_oldobjs)}]
                                )
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Simple
                                      blame_tok: <func_basename>
                                      more_env: []
                                      words: [{<func_basename>} {(DQ ($ Id.VSub_DollarName obj))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'objbase='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'objbase='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'objbase='>
                                              name: objbase
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_basename_result)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName oldobjs) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_DoubleQuote '"'>
                                          pattern: (pat.Words words:[{(DQ <' '>)}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'oldobjs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'oldobjs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'oldobjs='>
                                                      name: oldobjs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName obj)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\ '>
                                                    ch: ' '
                                                  ) <'/'> <Id.Lit_RBracket ']'> (DQ ($ Id.VSub_DollarName objbase) <' '>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.WhileUntil
                                              keyword: <Id.KW_While while>
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.Simple
                                                          blame_tok: <Id.Lit_Colon ':'>
                                                          more_env: []
                                                          words: [{<Id.Lit_Colon ':'>}]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'newobj='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'newobj='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'newobj='>
                                                              name: newobj
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {<lt> ($ Id.VSub_DollarName counter) <-> 
                                                              ($ Id.VSub_DollarName objbase)
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <func_arith>
                                                      more_env: []
                                                      words: [
                                                        {<func_arith>}
                                                        {($ Id.VSub_DollarName counter)}
                                                        {<Id.Lit_Other '+'>}
                                                        {<1>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'counter='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'counter='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'counter='>
                                                              name: counter
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName func_arith_result)
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {
                                                              (DQ <' '> ($ Id.VSub_DollarName oldobjs) 
                                                                <' '>
                                                              )
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '> ch:' ') <'/'> <Id.Lit_RBracket ']'> 
                                                                  (DQ ($ Id.VSub_DollarName newobj) 
                                                                    <' '>
                                                                  ) <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: []
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.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>}
                                                                                {<Id.KW_Bang '!'>}
                                                                                {<-f>}
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName gentop
                                                                                    ) <'/'> ($ Id.VSub_DollarName newobj)
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.Sentence
                                                                      child: 
                                                                        (command.ControlFlow
                                                                          keyword: 
                                                                            <Id.ControlFlow_Break 
break
                                                                            >
                                                                        )
                                                                      terminator: <Id.Op_Semi _>
                                                                    )
                                                                  ]
                                                                  spids: [58245 58260]
                                                                )
                                                              ]
                                                              else_action: []
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <func_show_eval>
                                              more_env: []
                                              words: [
                                                {<func_show_eval>}
                                                {
                                                  (DQ <'ln '> ($ Id.VSub_DollarName obj) <' '> 
                                                    ($ Id.VSub_DollarName gentop) <'/'> ($ Id.VSub_DollarName newobj) <' || cp '> ($ Id.VSub_DollarName obj) <' '> 
                                                    ($ Id.VSub_DollarName gentop) <'/'> ($ Id.VSub_DollarName newobj)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<oldobjs>}
                                                {
                                                  (DQ <' '> ($ Id.VSub_DollarName gentop) <'/'> 
                                                    ($ Id.VSub_DollarName newobj)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<oldobjs>}
                                                {(DQ <' '> ($ Id.VSub_DollarName obj))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <func_to_tool_file>
                          more_env: []
                          words: [
                            {<func_to_tool_file>}
                            {(DQ ($ Id.VSub_DollarName oldlib))}
                            {<func_convert_file_msys_to_w32>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'tool_oldlib='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'tool_oldlib='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'tool_oldlib='>
                                  name: tool_oldlib
                                )
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName func_to_tool_file_result)}
                            )
                          ]
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <eval>
                          more_env: []
                          words: [
                            {<eval>}
                            {<Id.Lit_VarLike 'cmds='> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\"'>
                                ch: '"'
                              ) ($ Id.VSub_DollarName old_archive_cmds) 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\"'>
                                ch: '"'
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <func_len>
                          more_env: []
                          words: [{<func_len>} {(DQ <' '> ($ Id.VSub_DollarName cmds))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'len='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'len='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'len='> name:len)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName func_len_result)}
                            )
                          ]
                          redirects: []
                        )
                        (command.If
                          if_kw: <Id.KW_If if>
                          arms: [
                            (IfArm
                              keyword: <Id.KW_If if>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.AndOr
                                          children: [
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {(DQ ($ Id.VSub_DollarName len))}
                                                {<-lt>}
                                                {(DQ ($ Id.VSub_DollarName max_cmd_len))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {(DQ ($ Id.VSub_DollarName max_cmd_len))}
                                                {<-le>}
                                                {<-1>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          ops: [<Id.Op_DPipe _>]
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'cmds='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'cmds='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmds='> name:cmds)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName old_archive_cmds)}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [58367 58394]
                            )
                            (IfArm
                              keyword: <Id.KW_Elif elif>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-n>}
                                            {(DQ ($ Id.VSub_DollarName archiver_list_spec))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.Simple
                                  blame_tok: <func_verbose>
                                  more_env: []
                                  words: [
                                    {<func_verbose>}
                                    {(DQ <'using command file archive linking...'>)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ForEach
                                  keyword: <Id.KW_For for>
                                  iter_names: [obj]
                                  iterable: (for_iter.Words words:[{($ Id.VSub_DollarName oldobjs)}])
                                  body: 
                                    (command.DoGroup
                                      left: <Id.KW_Do do>
                                      children: [
                                        (command.Simple
                                          blame_tok: <func_to_tool_file>
                                          more_env: []
                                          words: [
                                            {<func_to_tool_file>}
                                            {(DQ ($ Id.VSub_DollarName obj))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$ECHO'>
                                          more_env: []
                                          words: [
                                            {($ Id.VSub_DollarName ECHO)}
                                            {(DQ ($ Id.VSub_DollarName func_to_tool_file_result))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      right: <Id.KW_Done done>
                                    )
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: 
                                        {($ Id.VSub_DollarName output_objdir) <'/'> 
                                          ($ Id.VSub_DollarName libname) <.libcmd>
                                        }
                                    )
                                  ]
                                )
                                (command.Simple
                                  blame_tok: <func_to_tool_file>
                                  more_env: []
                                  words: [
                                    {<func_to_tool_file>}
                                    {
                                      (DQ ($ Id.VSub_DollarName output_objdir) <'/'> 
                                        ($ Id.VSub_DollarName libname) <.libcmd>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'oldobjs='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'oldobjs='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'oldobjs='>
                                          name: oldobjs
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ <' '> ($ Id.VSub_DollarName archiver_list_spec) 
                                            ($ Id.VSub_DollarName func_to_tool_file_result)
                                          )
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'cmds='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'cmds='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmds='> name:cmds)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName old_archive_cmds)}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [58401 58412]
                            )
                          ]
                          else_kw: <Id.KW_Else else>
                          else_action: [
                            (command.Simple
                              blame_tok: <func_verbose>
                              more_env: []
                              words: [{<func_verbose>} {(DQ <'using piecewise archive linking...'>)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'save_RANLIB='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'save_RANLIB='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'save_RANLIB='>
                                      name: save_RANLIB
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName RANLIB)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'RANLIB='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'RANLIB='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RANLIB='> name:RANLIB)
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Colon ':'>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'objlist='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'objlist='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'objlist='>
                                      name: objlist
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'concat_cmds='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'concat_cmds='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'concat_cmds='>
                                      name: concat_cmds
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'save_oldobjs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'save_oldobjs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'save_oldobjs='>
                                      name: save_oldobjs
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName oldobjs)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'oldobjs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'oldobjs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'oldobjs='>
                                      name: oldobjs
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [obj]
                              iterable: 
                                (for_iter.Words
                                  words: [{($ Id.VSub_DollarName save_oldobjs)}]
                                )
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'last_oldobj='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'last_oldobj='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'last_oldobj='>
                                              name: last_oldobj
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName obj)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {<Id.Lit_VarLike 'test_cmds='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                    ch: '"'
                                  ) ($ Id.VSub_DollarName old_archive_cmds) 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                    ch: '"'
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <func_len>
                              more_env: []
                              words: [{<func_len>} {(DQ <' '> ($ Id.VSub_DollarName test_cmds))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'len0='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'len0='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'len0='> name:len0)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName func_len_result)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'len='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'len='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'len='> name:len)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName len0)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [obj]
                              iterable: 
                                (for_iter.Words
                                  words: [{($ Id.VSub_DollarName save_oldobjs)}]
                                )
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Simple
                                      blame_tok: <func_len>
                                      more_env: []
                                      words: [{<func_len>} {(DQ <' '> ($ Id.VSub_DollarName obj))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <func_arith>
                                      more_env: []
                                      words: [
                                        {<func_arith>}
                                        {($ Id.VSub_DollarName len)}
                                        {<Id.Lit_Other '+'>}
                                        {($ Id.VSub_DollarName func_len_result)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'len='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'len='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'len='>
                                              name: len
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName func_arith_result)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<objlist>}
                                        {(DQ <' '> ($ Id.VSub_DollarName obj))}
                                      ]
                                      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>}
                                                        {(DQ ($ Id.VSub_DollarName len))}
                                                        {<-lt>}
                                                        {(DQ ($ Id.VSub_DollarName max_cmd_len))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <Id.Lit_Colon ':'>
                                              more_env: []
                                              words: [{<Id.Lit_Colon ':'>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [58605 58620]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'oldobjs='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'oldobjs='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'oldobjs='>
                                                  name: oldobjs
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName objlist)}
                                            )
                                          ]
                                          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: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {(DQ ($ Id.VSub_DollarName obj))}
                                                            {<Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName last_oldobj))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              then_kw: <Id.KW_Then then>
                                              action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'RANLIB='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'RANLIB='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'RANLIB='>
                                                          name: RANLIB
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_DollarName save_RANLIB)}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              spids: [58637 58652]
                                            )
                                          ]
                                          else_action: []
                                          fi_kw: <Id.KW_Fi fi>
                                          redirects: []
                                        )
                                        (command.AndOr
                                          children: [
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-z>}
                                                {(DQ ($ Id.VSub_DollarName concat_cmds))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'concat_cmds='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'concat_cmds='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'concat_cmds='>
                                                      name: concat_cmds
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName concat_cmds) 
                                                      <Id.Lit_TildeLike '~'>
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          ops: [<Id.Op_DPipe _>]
                                        )
                                        (command.Simple
                                          blame_tok: <eval>
                                          more_env: []
                                          words: [
                                            {<eval>}
                                            {<Id.Lit_VarLike 'concat_cmds='> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\"'>
                                                ch: '"'
                                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <concat_cmds> 
                                              ($ Id.VSub_DollarName old_archive_cmds) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'objlist='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'objlist='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'objlist='>
                                                  name: objlist
                                                )
                                              op: assign_op.Equal
                                              rhs: (rhs_word__Empty)
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'len='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'len='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'len='>
                                                  name: len
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName len0)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'RANLIB='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'RANLIB='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RANLIB='> name:RANLIB)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName save_RANLIB)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'oldobjs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'oldobjs='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'oldobjs='>
                                      name: oldobjs
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName objlist)}
                                )
                              ]
                              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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-z>}
                                                {(DQ ($ Id.VSub_DollarName oldobjs))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {<Id.Lit_VarLike 'cmds='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                            ch: '"'
                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <concat_cmds> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                            ch: '"'
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [58708 58719]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <eval>
                                  more_env: []
                                  words: [
                                    {<eval>}
                                    {<Id.Lit_VarLike 'cmds='> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\"'>
                                        ch: '"'
                                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <concat_cmds> <Id.Lit_TildeLike '~'> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\$'>
                                        ch: '$'
                                      ) <old_archive_cmds> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_execute_cmds>
                      more_env: []
                      words: [{<func_execute_cmds>} {(DQ ($ Id.VSub_DollarName cmds))} {(SQ <'exit $?'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName generated))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <func_show_eval>
                  more_env: []
                  words: [
                    {<func_show_eval>}
                    {(DQ (${ Id.VSub_Name RM) <r> ($ Id.VSub_DollarName generated))}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName output)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.la>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'old_library='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'old_library='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'old_library='>
                              name: old_library
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<yes>}
                            {<Id.Lit_Equals '='>}
                            {(DQ ($ Id.VSub_DollarName build_old_libs))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'old_library='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'old_library='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'old_library='>
                                  name: old_library
                                )
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName libname) <.> ($ Id.VSub_DollarName libext)}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.Simple
                      blame_tok: <func_verbose>
                      more_env: []
                      words: [{<func_verbose>} {(DQ <'creating '> ($ Id.VSub_DollarName output))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [var]
                      iterable: 
                        (for_iter.Words
                          words: [{($ Id.VSub_DollarName variables_saved_for_relink)}]
                        )
                      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: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {<test>}
                                                {<-z>}
                                                {
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                    ch: '"'
                                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <Id.Lit_LBrace '{'> 
                                                  ($ Id.VSub_DollarName var) <Id.Lit_Other '+'> <set> <Id.Lit_RBrace '}'> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                    ch: '"'
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'relink_command='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'relink_command='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'relink_command='>
                                              name: relink_command
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ <'{ test -z '> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                  ch: '"'
                                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'{'> ($ Id.VSub_DollarName var) 
                                                <'+set}'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' || '> 
                                                ($ Id.VSub_DollarName lt_unset) <' '> ($ Id.VSub_DollarName var) <' || { '> ($ Id.VSub_DollarName var) <'=; export '> 
                                                ($ Id.VSub_DollarName var) <'; }; }; '> ($ Id.VSub_DollarName relink_command)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [58856 58874]
                                )
                                (IfArm
                                  keyword: <Id.KW_Elif elif>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {<Id.Lit_VarLike 'var_value='> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\$'>
                                                    ch: '$'
                                                  ) ($ Id.VSub_DollarName var)
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-z>}
                                                {(DQ ($ Id.VSub_DollarName var_value))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'relink_command='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'relink_command='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'relink_command='>
                                              name: relink_command
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName var) <'=; export '> 
                                                ($ Id.VSub_DollarName var) <'; '> ($ Id.VSub_DollarName relink_command)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [58899 58917]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <func_quote_for_eval>
                                  more_env: []
                                  words: [
                                    {<func_quote_for_eval>}
                                    {(DQ ($ Id.VSub_DollarName var_value))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'relink_command='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'relink_command='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'relink_command='>
                                          name: relink_command
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName var) <'='> 
                                            ($ Id.VSub_DollarName func_quote_for_eval_result) <'; export '> ($ Id.VSub_DollarName var) <'; '> ($ Id.VSub_DollarName relink_command)
                                          )
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'relink_command='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'relink_command='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'relink_command='>
                              name: relink_command
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'(cd '> 
                                (CommandSub
                                  left_token: <Id.Left_Backtick '`'>
                                  child: 
                                    (command.Simple
                                      blame_tok: <pwd>
                                      more_env: []
                                      words: [{<pwd>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  right: <Id.Backtick_Right '`'>
                                ) <'; '> ($ Id.VSub_DollarName SHELL) <' '> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                  ch: '"'
                                ) ($ Id.VSub_DollarName progpath) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                <' '> ($ Id.VSub_DollarName preserve_args) <' --mode=relink '> ($ Id.VSub_DollarName libtool_args) 
                                <' @inst_prefix_dir@)'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'relink_command='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'relink_command='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'relink_command='>
                              name: relink_command
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <Id.VSub_DollarName '$ECHO'>
                                        more_env: []
                                        words: [
                                          {($ Id.VSub_DollarName ECHO)}
                                          {(DQ ($ Id.VSub_DollarName relink_command))}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                        more_env: []
                                        words: [
                                          {($ Id.VSub_DollarName SED)}
                                          {(DQ ($ Id.VSub_DollarName sed_quote_subst))}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      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: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<yes>}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName hardcode_automatic))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'relink_command='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'relink_command='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'relink_command='>
                                      name: relink_command
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [59004 59017]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.VSub_DollarName '$opt_dry_run'>
                          more_env: []
                          words: [{($ Id.VSub_DollarName opt_dry_run)}]
                          redirects: []
                          do_fork: T
                        )
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [installed]
                              iterable: (for_iter.Words words:[{<no>} {<yes>}])
                              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: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<yes>}
                                                        {<Id.Lit_Equals '='>}
                                                        {(DQ ($ Id.VSub_DollarName installed))}
                                                      ]
                                                      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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-z>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
install_libdir
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  spids: [59068 59079]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'output='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'output='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'output='>
                                                      name: output
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName output_objdir) <'/'> 
                                                      (${ Id.VSub_Name outputname) <i>
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'newdependency_libs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'newdependency_libs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'newdependency_libs='>
                                                      name: newdependency_libs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [deplib]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName dependency_libs)}]
                                                )
                                              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 deplib)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'> <.la>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_basename>
                                                              more_env: []
                                                              words: [
                                                                {<func_basename>}
                                                                {(DQ ($ Id.VSub_DollarName deplib))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'name='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'name='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'name='>
                                                                      name: name
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
func_basename_result
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <func_resolve_sysroot>
                                                              more_env: []
                                                              words: [
                                                                {<func_resolve_sysroot>}
                                                                {(DQ ($ Id.VSub_DollarName deplib))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [
                                                                {<eval>}
                                                                {<Id.Lit_VarLike 'libdir='> 
                                                                  (CommandSub
                                                                    left_token: 
                                                                      <Id.Left_Backtick '`'>
                                                                    child: 
                                                                      (command.Simple
                                                                        blame_tok: 
                                                                          <Id.VSub_DollarName '$SED'>
                                                                        more_env: []
                                                                        words: [
                                                                          {
                                                                            ($ Id.VSub_DollarName SED)
                                                                          }
                                                                          {<-n>}
                                                                          {<-e>}
                                                                          {
                                                                            (SQ 
                                                                              <
's/^libdir=\\(.*\\)$/\\1/p'
                                                                              >
                                                                            )
                                                                          }
                                                                          {
                                                                            ($ Id.VSub_DollarName 
func_resolve_sysroot_result
                                                                            )
                                                                          }
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    right: <Id.Backtick_Right '`'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.AndOr
                                                              children: [
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<-z>}
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName libdir)
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.Simple
                                                                  blame_tok: <func_fatal_error>
                                                                  more_env: []
                                                                  words: [
                                                                    {<func_fatal_error>}
                                                                    {
                                                                      (DQ <'\''> 
                                                                        ($ Id.VSub_DollarName deplib) <'\' is not a valid libtool archive'>
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              ops: [<Id.Op_DAmp _>]
                                                            )
                                                            (command.Simple
                                                              blame_tok: <func_append>
                                                              more_env: []
                                                              words: [
                                                                {<func_append>}
                                                                {<newdependency_libs>}
                                                                {
                                                                  (DQ <' '> 
                                                                    (BracedVarSub
                                                                      left: 
                                                                        <Id.Left_DollarBrace '${'>
                                                                      token: 
                                                                        <Id.VSub_Name lt_sysroot>
                                                                      var_name: lt_sysroot
                                                                      suffix_op: 
                                                                        (suffix_op.Unary
                                                                          op: <Id.VTest_ColonPlus _>
                                                                          arg_word: {<'='>}
                                                                        )
                                                                      right: 
                                                                        <Id.Right_DollarBrace '}'>
                                                                    ) ($ Id.VSub_DollarName libdir) <'/'> ($ Id.VSub_DollarName name)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <-L>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<-L> <Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_stripname>
                                                              more_env: []
                                                              words: [
                                                                {<func_stripname>}
                                                                {<-L>}
                                                                {(SQ )}
                                                                {(DQ ($ Id.VSub_DollarName deplib))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <func_replace_sysroot>
                                                              more_env: []
                                                              words: [
                                                                {<func_replace_sysroot>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
func_stripname_result
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <func_append>
                                                              more_env: []
                                                              words: [
                                                                {<func_append>}
                                                                {<newdependency_libs>}
                                                                {
                                                                  (DQ <' -L'> 
                                                                    ($ Id.VSub_DollarName 
func_replace_sysroot_result
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <-R>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<-R> <Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_stripname>
                                                              more_env: []
                                                              words: [
                                                                {<func_stripname>}
                                                                {<-R>}
                                                                {(SQ )}
                                                                {(DQ ($ Id.VSub_DollarName deplib))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <func_replace_sysroot>
                                                              more_env: []
                                                              words: [
                                                                {<func_replace_sysroot>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
func_stripname_result
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <func_append>
                                                              more_env: []
                                                              words: [
                                                                {<func_append>}
                                                                {<newdependency_libs>}
                                                                {
                                                                  (DQ <' -R'> 
                                                                    ($ Id.VSub_DollarName 
func_replace_sysroot_result
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_append>
                                                              more_env: []
                                                              words: [
                                                                {<func_append>}
                                                                {<newdependency_libs>}
                                                                {
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName deplib)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'dependency_libs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'dependency_libs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dependency_libs='>
                                                      name: dependency_libs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName newdependency_libs)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'newdlfiles='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'newdlfiles='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'newdlfiles='>
                                                      name: newdlfiles
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [lib]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName dlfiles)}]
                                                )
                                              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 lib)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'> <.la>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_basename>
                                                              more_env: []
                                                              words: [
                                                                {<func_basename>}
                                                                {(DQ ($ Id.VSub_DollarName lib))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'name='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'name='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'name='>
                                                                      name: name
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
func_basename_result
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [
                                                                {<eval>}
                                                                {<Id.Lit_VarLike 'libdir='> 
                                                                  (CommandSub
                                                                    left_token: 
                                                                      <Id.Left_Backtick '`'>
                                                                    child: 
                                                                      (command.Simple
                                                                        blame_tok: 
                                                                          <Id.VSub_DollarName '$SED'>
                                                                        more_env: []
                                                                        words: [
                                                                          {
                                                                            ($ Id.VSub_DollarName SED)
                                                                          }
                                                                          {<-n>}
                                                                          {<-e>}
                                                                          {
                                                                            (SQ 
                                                                              <
's/^libdir=\\(.*\\)$/\\1/p'
                                                                              >
                                                                            )
                                                                          }
                                                                          {
                                                                            ($ Id.VSub_DollarName lib)
                                                                          }
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    right: <Id.Backtick_Right '`'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.AndOr
                                                              children: [
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<-z>}
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName libdir)
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.Simple
                                                                  blame_tok: <func_fatal_error>
                                                                  more_env: []
                                                                  words: [
                                                                    {<func_fatal_error>}
                                                                    {
                                                                      (DQ <'\''> 
                                                                        ($ Id.VSub_DollarName lib) <'\' is not a valid libtool archive'>
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              ops: [<Id.Op_DAmp _>]
                                                            )
                                                            (command.Simple
                                                              blame_tok: <func_append>
                                                              more_env: []
                                                              words: [
                                                                {<func_append>}
                                                                {<newdlfiles>}
                                                                {
                                                                  (DQ <' '> 
                                                                    (BracedVarSub
                                                                      left: 
                                                                        <Id.Left_DollarBrace '${'>
                                                                      token: 
                                                                        <Id.VSub_Name lt_sysroot>
                                                                      var_name: lt_sysroot
                                                                      suffix_op: 
                                                                        (suffix_op.Unary
                                                                          op: <Id.VTest_ColonPlus _>
                                                                          arg_word: {<'='>}
                                                                        )
                                                                      right: 
                                                                        <Id.Right_DollarBrace '}'>
                                                                    ) ($ Id.VSub_DollarName libdir) <'/'> ($ Id.VSub_DollarName name)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_append>
                                                              more_env: []
                                                              words: [
                                                                {<func_append>}
                                                                {<newdlfiles>}
                                                                {
                                                                  (DQ <' '> ($ Id.VSub_DollarName lib))
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'dlfiles='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'dlfiles='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dlfiles='>
                                                      name: dlfiles
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName newdlfiles)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'newdlprefiles='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'newdlprefiles='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'newdlprefiles='>
                                                      name: newdlprefiles
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [lib]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName dlprefiles)}]
                                                )
                                              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 lib)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'> <.la>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <func_basename>
                                                              more_env: []
                                                              words: [
                                                                {<func_basename>}
                                                                {(DQ ($ Id.VSub_DollarName lib))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'name='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'name='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'name='>
                                                                      name: name
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
func_basename_result
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <eval>
                                                              more_env: []
                                                              words: [
                                                                {<eval>}
                                                                {<Id.Lit_VarLike 'libdir='> 
                                                                  (CommandSub
                                                                    left_token: 
                                                                      <Id.Left_Backtick '`'>
                                                                    child: 
                                                                      (command.Simple
                                                                        blame_tok: 
                                                                          <Id.VSub_DollarName '$SED'>
                                                                        more_env: []
                                                                        words: [
                                                                          {
                                                                            ($ Id.VSub_DollarName SED)
                                                                          }
                                                                          {<-n>}
                                                                          {<-e>}
                                                                          {
                                                                            (SQ 
                                                                              <
's/^libdir=\\(.*\\)$/\\1/p'
                                                                              >
                                                                            )
                                                                          }
                                                                          {
                                                                            ($ Id.VSub_DollarName lib)
                                                                          }
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    right: <Id.Backtick_Right '`'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.AndOr
                                                              children: [
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<-z>}
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName libdir)
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.Simple
                                                                  blame_tok: <func_fatal_error>
                                                                  more_env: []
                                                                  words: [
                                                                    {<func_fatal_error>}
                                                                    {
                                                                      (DQ <'\''> 
                                                                        ($ Id.VSub_DollarName lib) <'\' is not a valid libtool archive'>
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              ops: [<Id.Op_DAmp _>]
                                                            )
                                                            (command.Simple
                                                              blame_tok: <func_append>
                                                              more_env: []
                                                              words: [
                                                                {<func_append>}
                                                                {<newdlprefiles>}
                                                                {
                                                                  (DQ <' '> 
                                                                    (BracedVarSub
                                                                      left: 
                                                                        <Id.Left_DollarBrace '${'>
                                                                      token: 
                                                                        <Id.VSub_Name lt_sysroot>
                                                                      var_name: lt_sysroot
                                                                      suffix_op: 
                                                                        (suffix_op.Unary
                                                                          op: <Id.VTest_ColonPlus _>
                                                                          arg_word: {<'='>}
                                                                        )
                                                                      right: 
                                                                        <Id.Right_DollarBrace '}'>
                                                                    ) ($ Id.VSub_DollarName libdir) <'/'> ($ Id.VSub_DollarName name)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'dlprefiles='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'dlprefiles='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'dlprefiles='>
                                                      name: dlprefiles
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName newdlprefiles)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [59052 59065]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'newdlfiles='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'newdlfiles='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'newdlfiles='>
                                                  name: newdlfiles
                                                )
                                              op: assign_op.Equal
                                              rhs: (rhs_word__Empty)
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ForEach
                                          keyword: <Id.KW_For for>
                                          iter_names: [lib]
                                          iterable: 
                                            (for_iter.Words
                                              words: [{($ Id.VSub_DollarName dlfiles)}]
                                            )
                                          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 lib)}
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <Id.Lit_LBracket '['>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [
                                                            {<Id.Lit_LBracket '['> 
                                                              (word_part.EscapedLiteral
                                                                token: <Id.Lit_EscapedChar '\\\\'>
                                                                ch: '\\'
                                                              ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                            }
                                                            {<Id.Lit_LBracket '['> <A-Za-z> 
                                                              <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> 
                                                              (word_part.EscapedLiteral
                                                                token: <Id.Lit_EscapedChar '\\\\'>
                                                                ch: '\\'
                                                              ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'abs='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'abs='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'abs='>
                                                                  name: abs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {($ Id.VSub_DollarName lib)}
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                    (CaseArm
                                                      left: <Id.Lit_Star '*'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [{<Id.Lit_Star '*'>}]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'abs='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'abs='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'abs='>
                                                                  name: abs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (CommandSub
                                                                    left_token: 
                                                                      <Id.Left_Backtick '`'>
                                                                    child: 
                                                                      (command.Simple
                                                                        blame_tok: <pwd>
                                                                        more_env: []
                                                                        words: [{<pwd>}]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    right: <Id.Backtick_Right '`'>
                                                                  ) (DQ <'/'> ($ Id.VSub_DollarName lib))
                                                                }
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                                (command.Simple
                                                  blame_tok: <func_append>
                                                  more_env: []
                                                  words: [
                                                    {<func_append>}
                                                    {<newdlfiles>}
                                                    {(DQ <' '> ($ Id.VSub_DollarName abs))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              right: <Id.KW_Done done>
                                            )
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'dlfiles='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'dlfiles='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'dlfiles='>
                                                  name: dlfiles
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName newdlfiles)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'newdlprefiles='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'newdlprefiles='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'newdlprefiles='>
                                                  name: newdlprefiles
                                                )
                                              op: assign_op.Equal
                                              rhs: (rhs_word__Empty)
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ForEach
                                          keyword: <Id.KW_For for>
                                          iter_names: [lib]
                                          iterable: 
                                            (for_iter.Words
                                              words: [{($ Id.VSub_DollarName dlprefiles)}]
                                            )
                                          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 lib)}
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <Id.Lit_LBracket '['>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [
                                                            {<Id.Lit_LBracket '['> 
                                                              (word_part.EscapedLiteral
                                                                token: <Id.Lit_EscapedChar '\\\\'>
                                                                ch: '\\'
                                                              ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                            }
                                                            {<Id.Lit_LBracket '['> <A-Za-z> 
                                                              <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> 
                                                              (word_part.EscapedLiteral
                                                                token: <Id.Lit_EscapedChar '\\\\'>
                                                                ch: '\\'
                                                              ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'abs='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'abs='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'abs='>
                                                                  name: abs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {($ Id.VSub_DollarName lib)}
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                    (CaseArm
                                                      left: <Id.Lit_Star '*'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [{<Id.Lit_Star '*'>}]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'abs='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'abs='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'abs='>
                                                                  name: abs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (CommandSub
                                                                    left_token: 
                                                                      <Id.Left_Backtick '`'>
                                                                    child: 
                                                                      (command.Simple
                                                                        blame_tok: <pwd>
                                                                        more_env: []
                                                                        words: [{<pwd>}]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    right: <Id.Backtick_Right '`'>
                                                                  ) (DQ <'/'> ($ Id.VSub_DollarName lib))
                                                                }
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                                (command.Simple
                                                  blame_tok: <func_append>
                                                  more_env: []
                                                  words: [
                                                    {<func_append>}
                                                    {<newdlprefiles>}
                                                    {(DQ <' '> ($ Id.VSub_DollarName abs))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              right: <Id.KW_Done done>
                                            )
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'dlprefiles='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'dlprefiles='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'dlprefiles='>
                                                  name: dlprefiles
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName newdlprefiles)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$RM'>
                                      more_env: []
                                      words: [
                                        {($ Id.VSub_DollarName RM)}
                                        {($ Id.VSub_DollarName output)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'tdlname='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'tdlname='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'tdlname='>
                                              name: tdlname
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName dlname)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {($ Id.VSub_DollarName host) <Id.Lit_Comma ','> 
                                              ($ Id.VSub_DollarName output) <Id.Lit_Comma ','> ($ Id.VSub_DollarName installed) <Id.Lit_Comma ','> ($ Id.VSub_DollarName module) 
                                              <Id.Lit_Comma ','> ($ Id.VSub_DollarName dlname)
                                            }
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'> 
                                                  <Id.Lit_Comma ','> <Id.Lit_Star '*'> <lai> <Id.Lit_Comma ','> <yes> <Id.Lit_Comma ','> <no> <Id.Lit_Comma ','> 
                                                  <Id.Lit_Star '*'> <.dll>
                                                }
                                                {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'> 
                                                  <Id.Lit_Comma ','> <Id.Lit_Star '*'> <lai> <Id.Lit_Comma ','> <yes> <Id.Lit_Comma ','> <no> <Id.Lit_Comma ','> 
                                                  <Id.Lit_Star '*'> <.dll>
                                                }
                                                {<Id.Lit_Star '*'> <cegcc> <Id.Lit_Star '*'> 
                                                  <Id.Lit_Comma ','> <Id.Lit_Star '*'> <lai> <Id.Lit_Comma ','> <yes> <Id.Lit_Comma ','> <no> <Id.Lit_Comma ','> 
                                                  <Id.Lit_Star '*'> <.dll>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-n>}
                                                                {(DQ ($ Id.VSub_DollarName bindir))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_relative_path>
                                                      more_env: []
                                                      words: [
                                                        {<func_relative_path>}
                                                        {(DQ ($ Id.VSub_DollarName install_libdir))}
                                                        {(DQ ($ Id.VSub_DollarName bindir))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'tdlname='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'tdlname='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'tdlname='>
                                                              name: tdlname
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName 
func_relative_path_result
                                                              ) <'/'> ($ Id.VSub_DollarName dlname)
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [59860 59871]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'tdlname='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'tdlname='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'tdlname='>
                                                          name: tdlname
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {<'../bin/'> ($ Id.VSub_DollarName dlname)}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$ECHO'>
                                      more_env: []
                                      words: [
                                        {($ Id.VSub_DollarName ECHO)}
                                        {
                                          (DQ <'# '> ($ Id.VSub_DollarName outputname) 
                                            <' - a libtool library file\n'> <'# Generated by '> ($ Id.VSub_DollarName PROGRAM) <' (GNU '> ($ Id.VSub_DollarName PACKAGE) <') '> 
                                            ($ Id.VSub_DollarName VERSION) <'\n'> <'#\n'> <'# Please DO NOT delete this file!\n'> <'# It is necessary for linking the library.\n'> 
                                            <'\n'> <'# The name that we can dlopen(3).\n'> <'dlname=\''> ($ Id.VSub_DollarName tdlname) <'\'\n'> <'\n'> 
                                            <'# Names of this library.\n'> <'library_names=\''> ($ Id.VSub_DollarName library_names) <'\'\n'> <'\n'> 
                                            <'# The name of the static archive.\n'> <'old_library=\''> ($ Id.VSub_DollarName old_library) <'\'\n'> <'\n'> 
                                            <'# Linker flags that cannot go in dependency_libs.\n'> <'inherited_linker_flags=\''> ($ Id.VSub_DollarName new_inherited_linker_flags) <'\'\n'> <'\n'> 
                                            <'# Libraries that this one depends upon.\n'> <'dependency_libs=\''> ($ Id.VSub_DollarName dependency_libs) <'\'\n'> <'\n'> 
                                            <
'# Names of additional weak libraries provided by this library\n'
                                            > <'weak_library_names=\''> ($ Id.VSub_DollarName weak_libs) <'\'\n'> <'\n'> <'# Version information for '> 
                                            ($ Id.VSub_DollarName libname) <'.\n'> <'current='> ($ Id.VSub_DollarName current) <'\n'> <'age='> ($ Id.VSub_DollarName age) <'\n'> 
                                            <'revision='> ($ Id.VSub_DollarName revision) <'\n'> <'\n'> <'# Is this an already installed library?\n'> 
                                            <'installed='> ($ Id.VSub_DollarName installed) <'\n'> <'\n'> 
                                            <
'# Should we warn about portability when linking against -modules?\n'
                                            > <'shouldnotlink='> ($ Id.VSub_DollarName module) <'\n'> <'\n'> <'# Files to dlopen/dlpreopen\n'> 
                                            <'dlopen=\''> ($ Id.VSub_DollarName dlfiles) <'\'\n'> <'dlpreopen=\''> ($ Id.VSub_DollarName dlprefiles) <'\'\n'> <'\n'> 
                                            <
'# Directory that this library needs to be installed in:\n'
                                            > <'libdir=\''> ($ Id.VSub_DollarName install_libdir) <'\''>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {($ Id.VSub_DollarName output)}
                                        )
                                      ]
                                      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>}
                                                        {<no> <Id.Lit_Comma ','> <yes>}
                                                        {<Id.Lit_Equals '='>}
                                                        {
                                                          (DQ ($ Id.VSub_DollarName installed) <','> 
                                                            ($ Id.VSub_DollarName need_relink)
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$ECHO'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName ECHO)}
                                                {
                                                  (DQ <'relink_command='> 
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\"'>
                                                      ch: '"'
                                                    ) ($ Id.VSub_DollarName relink_command) 
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\"'>
                                                      ch: '"'
                                                    )
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_DGreat '>>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {($ Id.VSub_DollarName output)}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          spids: [60002 60019]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.Simple
                      blame_tok: <func_show_eval>
                      more_env: []
                      words: [
                        {<func_show_eval>}
                        {
                          (SQ 
                            <
'( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )'
                            >
                          )
                        }
                        {(SQ <'exit $?'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName EXIT_SUCCESS)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<link>}
                            {<Id.Lit_Equals '='>}
                            {(DQ ($ Id.VSub_DollarName opt_mode))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<relink>}
                            {<Id.Lit_Equals '='>}
                            {(DQ ($ Id.VSub_DollarName opt_mode))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <func_mode_link>
              more_env: []
              words: [
                {<func_mode_link>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Number 1>
                    var_name: 1
                    suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          spids: [60079 60104]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShFunction
      name_tok: <func_mode_uninstall>
      name: func_mode_uninstall
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$debug_cmd'>
              more_env: []
              words: [{($ Id.VSub_DollarName debug_cmd)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'RM='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'RM='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RM='> name:RM)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName nonopt)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'files='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'files='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'files='> name:files)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'rmforce='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'rmforce='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rmforce='> name:rmforce)
                  op: assign_op.Equal
                  rhs: {<false>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'exit_status='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'exit_status='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exit_status='> name:exit_status)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'libtool_install_magic='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'libtool_install_magic='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'libtool_install_magic='>
                      name: libtool_install_magic
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName magic)}
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [arg]
              iterable: (for_iter__Args)
              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 arg)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <-f>
                          pattern: (pat.Words words:[{<-f>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <func_append>
                                  more_env: []
                                  words: [{<func_append>} {<RM>} {(DQ <' '> ($ Id.VSub_DollarName arg))}]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'rmforce='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'rmforce='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'rmforce='>
                                      name: rmforce
                                    )
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Colon ':'>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <->
                          pattern: (pat.Words words:[{<-> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [{<func_append>} {<RM>} {(DQ <' '> ($ Id.VSub_DollarName arg))}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <func_append>
                              more_env: []
                              words: [{<func_append>} {<files>} {(DQ <' '> ($ Id.VSub_DollarName arg))}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName RM))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <func_fatal_help>
                  more_env: []
                  words: [{<func_fatal_help>} {(DQ <'you must specify an RM program'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'rmdirs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'rmdirs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rmdirs='> name:rmdirs)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [file]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName files)}])
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <func_dirname>
                      more_env: []
                      words: [{<func_dirname>} {(DQ ($ Id.VSub_DollarName file))} {(DQ )} {(DQ <.>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'dir='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'dir='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_dirname_result)}
                        )
                      ]
                      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: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<.>}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName dir))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'odir='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'odir='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'odir='> name:odir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName objdir)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [60291 60304]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'odir='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'odir='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'odir='> name:odir)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName dir) <'/'> ($ Id.VSub_DollarName objdir)}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_basename>
                      more_env: []
                      words: [{<func_basename>} {(DQ ($ Id.VSub_DollarName file))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'name='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'name='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name='> name:name)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName func_basename_result)}
                        )
                      ]
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<uninstall>}
                            {<Id.Lit_Equals '='>}
                            {(DQ ($ Id.VSub_DollarName opt_mode))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'odir='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'odir='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'odir='> name:odir)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName dir)}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (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>}
                                        {<clean>}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_DollarName opt_mode))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: {(DQ <' '> ($ Id.VSub_DollarName rmdirs) <' '>)}
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> 
                                          (DQ <' '> ($ Id.VSub_DollarName odir) <' '>) <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_append>
                                      more_env: []
                                      words: [
                                        {<func_append>}
                                        {<rmdirs>}
                                        {(DQ <' '> ($ Id.VSub_DollarName odir))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          spids: [60355 60368]
                        )
                      ]
                      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.AndOr
                                      children: [
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (command.Sentence
                                              child: 
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-L>}
                                                    {(DQ ($ Id.VSub_DollarName file))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          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>}
                                            )
                                          ]
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (command.Sentence
                                              child: 
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-h>}
                                                    {(DQ ($ Id.VSub_DollarName file))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          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>}
                                            )
                                          ]
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-f>} {(DQ ($ Id.VSub_DollarName file))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <Id.Lit_Colon ':'>
                              more_env: []
                              words: [{<Id.Lit_Colon ':'>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [60420 60475]
                        )
                        (IfArm
                          keyword: <Id.KW_Elif elif>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <test>
                                      more_env: []
                                      words: [{<test>} {<-d>} {(DQ ($ Id.VSub_DollarName file))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'exit_status='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'exit_status='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'exit_status='>
                                      name: exit_status
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [60481 60492]
                        )
                        (IfArm
                          keyword: <Id.KW_Elif elif>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$rmforce'>
                                      more_env: []
                                      words: [{($ Id.VSub_DollarName rmforce)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Continue continue>)]
                          spids: [60502 60507]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'rmfiles='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'rmfiles='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rmfiles='> name:rmfiles)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName file)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName name)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.la>}])
                          middle: <Id.Right_CasePat _>
                          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: <func_lalib_p>
                                              more_env: []
                                              words: [
                                                {<func_lalib_p>}
                                                {(DQ ($ Id.VSub_DollarName file))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_source>
                                      more_env: []
                                      words: [
                                        {<func_source>}
                                        {($ Id.VSub_DollarName dir) <'/'> ($ Id.VSub_DollarName name)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [n]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName library_names)}]
                                        )
                                      semi_tok: <Id.Op_Semi _>
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<rmfiles>}
                                                {
                                                  (DQ <' '> ($ Id.VSub_DollarName odir) <'/'> 
                                                    ($ Id.VSub_DollarName n)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-n>}
                                            {(DQ ($ Id.VSub_DollarName old_library))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <func_append>
                                          more_env: []
                                          words: [
                                            {<func_append>}
                                            {<rmfiles>}
                                            {
                                              (DQ <' '> ($ Id.VSub_DollarName odir) <'/'> 
                                                ($ Id.VSub_DollarName old_library)
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName opt_mode)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <clean>
                                          pattern: (pat.Words words:[{<clean>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: 
                                                    {
                                                      (DQ <' '> ($ Id.VSub_DollarName library_names) 
                                                        <' '>
                                                      )
                                                    }
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> ($ Id.VSub_DollarName dlname) <' '>) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: []
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {(DQ ($ Id.VSub_DollarName dlname))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <func_append>
                                                          more_env: []
                                                          words: [
                                                            {<func_append>}
                                                            {<rmfiles>}
                                                            {
                                                              (DQ <' '> ($ Id.VSub_DollarName odir) 
                                                                <'/'> ($ Id.VSub_DollarName dlname)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-n>}
                                                    {(DQ ($ Id.VSub_DollarName libdir))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <func_append>
                                                  more_env: []
                                                  words: [
                                                    {<func_append>}
                                                    {<rmfiles>}
                                                    {
                                                      (DQ <' '> ($ Id.VSub_DollarName odir) <'/'> 
                                                        ($ Id.VSub_DollarName name) <' '> ($ Id.VSub_DollarName odir) <'/'> (${ Id.VSub_Name name) <i>
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <uninstall>
                                          pattern: (pat.Words words:[{<uninstall>}])
                                          middle: <Id.Right_CasePat _>
                                          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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-n>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
library_names
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_execute_cmds>
                                                      more_env: []
                                                      words: [
                                                        {<func_execute_cmds>}
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName postuninstall_cmds)
                                                          )
                                                        }
                                                        {(SQ <'$rmforce || exit_status=1'>)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [60712 60723]
                                                )
                                              ]
                                              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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-n>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName old_library)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_execute_cmds>
                                                      more_env: []
                                                      words: [
                                                        {<func_execute_cmds>}
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
old_postuninstall_cmds
                                                            )
                                                          )
                                                        }
                                                        {(SQ <'$rmforce || exit_status=1'>)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [60745 60756]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  spids: [60538 60547]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.lo>}])
                          middle: <Id.Right_CasePat _>
                          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: <func_lalib_p>
                                              more_env: []
                                              words: [
                                                {<func_lalib_p>}
                                                {(DQ ($ Id.VSub_DollarName file))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <func_source>
                                      more_env: []
                                      words: [
                                        {<func_source>}
                                        {($ Id.VSub_DollarName dir) <'/'> ($ Id.VSub_DollarName name)}
                                      ]
                                      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.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {(DQ ($ Id.VSub_DollarName pic_object))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<none>}
                                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName pic_object))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<rmfiles>}
                                                {
                                                  (DQ <' '> ($ Id.VSub_DollarName dir) <'/'> 
                                                    ($ Id.VSub_DollarName pic_object)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [60832 60856]
                                        )
                                      ]
                                      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.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-n>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName non_pic_object)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<none>}
                                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName non_pic_object)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<rmfiles>}
                                                {
                                                  (DQ <' '> ($ Id.VSub_DollarName dir) <'/'> 
                                                    ($ Id.VSub_DollarName non_pic_object)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [60879 60903]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [60803 60812]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          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: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<clean>}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName opt_mode))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'noexename='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'noexename='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'noexename='>
                                              name: noexename
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName name)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName file)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.exe>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <func_stripname>
                                              more_env: []
                                              words: [
                                                {<func_stripname>}
                                                {(SQ )}
                                                {(SQ <.exe>)}
                                                {(DQ ($ Id.VSub_DollarName file))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'file='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'file='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'file='>
                                                      name: file
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <func_stripname>
                                              more_env: []
                                              words: [
                                                {<func_stripname>}
                                                {(SQ )}
                                                {(SQ <.exe>)}
                                                {(DQ ($ Id.VSub_DollarName name))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'noexename='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'noexename='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'noexename='>
                                                      name: noexename
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName func_stripname_result)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<rmfiles>}
                                                {(DQ <' '> ($ Id.VSub_DollarName file))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      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: <func_ltwrapper_p>
                                                      more_env: []
                                                      words: [
                                                        {<func_ltwrapper_p>}
                                                        {(DQ ($ Id.VSub_DollarName file))}
                                                      ]
                                                      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: 
                                                                <func_ltwrapper_executable_p>
                                                              more_env: []
                                                              words: [
                                                                {<func_ltwrapper_executable_p>}
                                                                {(DQ ($ Id.VSub_DollarName file))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_ltwrapper_scriptname>
                                                      more_env: []
                                                      words: [
                                                        {<func_ltwrapper_scriptname>}
                                                        {(DQ ($ Id.VSub_DollarName file))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'relink_command='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'relink_command='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 'relink_command='>
                                                              name: relink_command
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <func_source>
                                                      more_env: []
                                                      words: [
                                                        {<func_source>}
                                                        {
                                                          ($ Id.VSub_DollarName 
func_ltwrapper_scriptname_result
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<rmfiles>}
                                                        {
                                                          (DQ <' '> 
                                                            ($ Id.VSub_DollarName 
func_ltwrapper_scriptname_result
                                                            )
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [61040 61049]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'relink_command='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'relink_command='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'relink_command='>
                                                          name: relink_command
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: (rhs_word__Empty)
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.Simple
                                                  blame_tok: <func_source>
                                                  more_env: []
                                                  words: [
                                                    {<func_source>}
                                                    {($ Id.VSub_DollarName dir) <'/'> 
                                                      ($ Id.VSub_DollarName noexename)
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <func_append>
                                              more_env: []
                                              words: [
                                                {<func_append>}
                                                {<rmfiles>}
                                                {
                                                  (DQ <' '> ($ Id.VSub_DollarName odir) <'/'> 
                                                    ($ Id.VSub_DollarName name) <' '> ($ Id.VSub_DollarName odir) <'/'> (${ Id.VSub_Name name) <S.> ($ Id.VSub_DollarName objext)
                                                  )
                                                }
                                              ]
                                              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.AndOr
                                                              children: [
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<yes>}
                                                                    {<Id.Lit_Equals '='>}
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
fast_install
                                                                        )
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<-n>}
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
relink_command
                                                                        )
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              ops: [<Id.Op_DAmp _>]
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<rmfiles>}
                                                        {
                                                          (DQ <' '> ($ Id.VSub_DollarName odir) 
                                                            <'/lt-'> ($ Id.VSub_DollarName name)
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [61122 61145]
                                                )
                                              ]
                                              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: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {
                                                                  (DQ <X> 
                                                                    ($ Id.VSub_DollarName noexename)
                                                                  )
                                                                }
                                                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                                {(DQ <X> ($ Id.VSub_DollarName name))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <func_append>
                                                      more_env: []
                                                      words: [
                                                        {<func_append>}
                                                        {<rmfiles>}
                                                        {
                                                          (DQ <' '> ($ Id.VSub_DollarName odir) 
                                                            <'/lt-'> ($ Id.VSub_DollarName noexename) <.c>
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [61163 61181]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          spids: [61028 61037]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [60932 60945]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <func_show_eval>
                      more_env: []
                      words: [
                        {<func_show_eval>}
                        {(DQ ($ Id.VSub_DollarName RM) <' '> ($ Id.VSub_DollarName rmfiles))}
                        {(SQ <'exit_status=1'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [dir]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName rmdirs)}])
              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: <test>
                                      more_env: []
                                      words: [{<test>} {<-d>} {(DQ ($ Id.VSub_DollarName dir))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <func_show_eval>
                              more_env: []
                              words: [
                                {<func_show_eval>}
                                {(DQ <'rmdir '> ($ Id.VSub_DollarName dir) <' >/dev/null 2>&1'>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [61245 61256]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName exit_status)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<uninstall>}
                            {<Id.Lit_Equals '='>}
                            {(DQ ($ Id.VSub_DollarName opt_mode))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<clean>}
                            {<Id.Lit_Equals '='>}
                            {(DQ ($ Id.VSub_DollarName opt_mode))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <func_mode_uninstall>
              more_env: []
              words: [
                {<func_mode_uninstall>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Number 1>
                    var_name: 1
                    suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{(DQ ($ Id.VSub_At '@'))})
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          spids: [61282 61307]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName opt_mode))}]
          redirects: []
          do_fork: T
        )
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'help='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'help='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'help='> name:help)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName generic_help)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <func_fatal_help>
              more_env: []
              words: [{<func_fatal_help>} {(DQ <'you must specify a MODE'>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName exec_cmd))}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <func_fatal_help>
          more_env: []
          words: [
            {<func_fatal_help>}
            {(DQ <'invalid operation mode \''> ($ Id.VSub_DollarName opt_mode) <'\''>)}
          ]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (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>} {<-n>} {(DQ ($ Id.VSub_DollarName exec_cmd))}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [{<eval>} {<exec>} {(DQ ($ Id.VSub_DollarName exec_cmd))}]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName EXIT_FAILURE)}
            )
          ]
          spids: [61370 61381]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ControlFlow
      keyword: <Id.ControlFlow_Exit exit>
      arg_word: {($ Id.VSub_DollarName exit_status)}
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'build_libtool_libs='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'build_libtool_libs='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'build_libtool_libs='> name:build_libtool_libs)
          op: assign_op.Equal
          rhs: {<no>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'build_old_libs='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'build_old_libs='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'build_old_libs='> name:build_old_libs)
          op: assign_op.Equal
          rhs: {<yes>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'build_old_libs='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'build_old_libs='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'build_old_libs='> name:build_old_libs)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Case
                    case_kw: <Id.KW_Case case>
                    to_match: (case_arg.Word w:{($ Id.VSub_DollarName build_libtool_libs)})
                    arms_start: <Id.KW_In in>
                    arms: [
                      (CaseArm
                        left: <yes>
                        pattern: (pat.Words words:[{<yes>}])
                        middle: <Id.Right_CasePat _>
                        action: [
                          (command.Simple
                            blame_tok: <echo>
                            more_env: []
                            words: [{<echo>} {<no>}]
                            redirects: []
                            do_fork: T
                          )
                        ]
                        right: <Id.Op_DSemi _>
                      )
                      (CaseArm
                        left: <Id.Lit_Star '*'>
                        pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                        middle: <Id.Right_CasePat _>
                        action: [
                          (command.Simple
                            blame_tok: <echo>
                            more_env: []
                            words: [{<echo>} {<yes>}]
                            redirects: []
                            do_fork: T
                          )
                        ]
                        right: <Id.Op_DSemi _>
                      )
                    ]
                    arms_end: <Id.KW_Esac esac>
                    redirects: []
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      ]
      redirects: []
    )
  ]
)